組合語言程式分析,急!!!!五道組合語言程式設計 程式分析題!!!不甚感激!!!

2021-08-14 23:03:40 字數 1816 閱讀 2157

1樓:做而論道

0000 7812 mov r0, #12h0002 7934 mov r1, #34h0004 e4 clr a

0005 fa mov r2, a0006 7f04 mov r7, #04h0008 c3 clr c

0009 e8 mov a, r0000a 33 rlc a

000b f8 mov r0, a000c e9 mov a, r1000d 33 rlc a

000e f9 mov r1, a000f ea mov a, r20010 33 rlc a

0011 fa mov r2, a0012 dff4 djnz r7, 0008h0014 80fe sjmp $

程式功能:將r1r0中的16位數,左移4位,右邊填入4個0,r1的高4位,移入r2的低4位。

------------------

程式中,參與向左移位的是r2r1r0,共有24位數字。

但是,在你的程式中,事先已經將r2清零,所以實際被移動的只有r1r0中的16位數字。

在你的程式前面,我加上了兩行,使得r1 r0=34 12h;

程式執行後,r2 r1 r0=03 41 20h。

程式的功能,即如前所述。

2樓:匿名使用者

這高質量問題,都看不到程式,分析什麼呢?

組合語言程式分析

3樓:綠葉楓

org 1000h //從地址bai1000h開始執行

buf db 12h //定義一個叫buf的變數du,賦初zhi值為12

lea bx,buf //把buf的地址送到bx裡面去mov cx,bx //bx的值dao放入cx

lop: add bx,2 //bx值加2。注:專lop是標識,迴圈跳轉

屬用loop lop //迴圈跳轉到lop處執行。迴圈次數取決於cx的值

hlt執行結果:bx = 3000.

因為第三句中將buf的偏移地址給了bx,而buf的偏移地址是1000,所以bx和cx的初始值都是1000。迴圈中bx只能累加1000次,所以就是3000了。

急!!!!五道組合語言程式設計 程式分析題!!!不甚感激!!!

4樓:手機使用者

29、⑴da2中的資料為:41h,42h,43h,44h,45h⑵暫存器相對定址。

30、ax=2300h,si=162ch

31、⑴在buf中查詢第一個數值為9的資料並顯示⑵「9」

32、ax=000fh,bx=0006h

33、ah=88h,al=99h

34、⑴依次顯示:a,b,c,d,e,f

⑵bx=0007h

35、al=02h,bl=06h

組合語言。分析下面給出程式的功能,求詳解,每一步的意思和整體的功能。 50

5樓:匿名使用者

指令1:將立即數bai20h傳送du

到暫存器r0

指令zhi2:將立

dao即數內40h傳送到暫存器r1

指令3:將立即數1fh傳送到暫存器r2指令4:將20h單元容的內容取出傳送到累加器a中

指令5:將累加器a中的內容傳送到40h中

指令6:暫存器r0加1,這裡是20h+1

組合語言程式設計的問題,組合語言程式設計問題

1.jmp bx 如果 bx 1020h,那麼 ip 1020h,因為此種形式為通過暫存器的段內間接轉移,執行時將把暫存器的內容直接送ip,所以執行此指令後ip的值為1020h 2.jmp tab bx si 如果 ds 2000h,bx 1020h,si 0002h,tab 0010h,21032...

組合語言編寫AT89C52,組合語言編寫AT89C

怎麼都是輸出?沒有輸入作依據,根據什麼輸出不同的值?把題目改為 p1.0口輸入為1,則p1.3口輸出為1,p1.0口輸入為0,則p1.3口輸出為0,p1.1口輸入為1,則p1.4口輸出為1,p1.1口輸入為0,則p1.4口輸出為0 程式 org 0000h mov c,p1.0 mov p1.3,c...

組合語言中si表示地址還是內容,組合語言中 SI 表示地址還是內容

si 是暫存器間接定址,它是指si中地址的內容,所以是具體內容,si是地址。在x86彙編中,中括號就相當於c語言的星號,即指標,mov x,地址 相當於x p一樣,是取內容。若mov si 100 則si代表 100 si 代表 地址為100的記憶體單元中的內容 記住,有的代表記憶體單元裡面 的內容...