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的記憶體單元中的內容 記住,有的代表記憶體單元裡面 的內容...