1樓:周文華
datas segment
shif dd 12345678h
datas ends
code segment
assume cs:code,ds:datasstart:
mov ax,datas
mov ds,ax
mov dx,word ptr [shif+2]mov ax,word ptr [shif]mov cl,4
shl dx,cl
mov bl,ah
shl ax,cl
shr bl,cl
or dl,bl
mov bl,dh
push ax
push dx
mov dl,bl
mov cl,4
shr dl,cl
cmp dl,9
jl l1
add dl,7h
l1:add dl,30h
mov ah,2
int 21h
mov dl,bl
and dl,0fh
cmp dl,9
jl l2
add dl,7h
l2:add dl,30h
int 21h
pop dx
pop ax
mov bl,dl
push ax
mov cl,4
mov bl,dl
shr dl,cl
cmp dl,9
jl l3
add dl,7h
l3:add dl,30h
mov ah,2
int 21h
mov dl,bl
and dl,0fh
cmp dl,9
jl l4
add dl,7h
l4:add dl,30h
int 21h
pop ax
mov bl,ah
push ax
mov cl,4
mov dl,bl
shr dl,cl
cmp dl,9
jl l5
add dl,7h
l5:add dl,30h
mov ah,2
int 21h
mov dl,bl
and dl,0fh
cmp dl,9
jl l6
add dl,7h
l6:add dl,30h
mov ah,2
int 21h
pop ax
mov bl,al
mov dl,al
mov cl,4
shr dl,cl
cmp dl,9
jl l7
add dl,7h
l7:add dl,30h
mov ah,2
int 21h
mov dl,bl
and dl,0fh
cmp dl,9
jl l8
add dl,7h
l8:add dl,30h
int 21h
mov ah,4ch
int 21h
code ends
end start
2樓:小寶的女人
腮腮,這個問題好難,我不會啊!!!!!!
題目:試用arm組合語言編寫把dx,ax暫存器中的雙字右移四位的彙編程式。
3樓:揉啊揉
最後一步應該是 or ah,bl 才對吧。然後我覺得倒數第2步寫成:
mov cl,(8-4)
shl bl,cl
會好理解一些
怎樣用組合語言實現將(dx)(ax)中的雙字邏輯左移一位
4樓:手機使用者
程式通過編譯,執行正確
code segment
assume cs:code,ds:code,es:code; 把32位邏數 3f65c9232h 邏輯左移2位 結果存在dx;ax中
start: mov dx,3f65hmov ax,c923h
shl ax,1
rcl dx,1
shl ax,1
rcl dx,1
exit_proc: mov ah,4ch ;結束程式int 21h
code ends
end start ;編譯到此結束
5樓:做而論道
向左移位,也可以乘以2、乘以4。。。
七條移位指令,花樣較多,理解起來,遠遠不如加法指令簡單。
左移一位,使用加法指令,實現乘以2,就是最簡單的。
add ax, ax
adc dx, dx完。
6樓:匿名使用者
邏輯左移=算數左移,右邊統一添0
邏輯右移,左邊統一添0
算數右移,左邊新增的數和符號有關
e.g:1010101010,其中位是新增的數字邏輯左移一位:010101010[0]
算數左移一位:010101010[0]
邏輯右移一位:[0]101010101
算數右移一位:[1]101010101
所以對於雙字就是
shl ax,1最高位移入cf
rcl dx,1帶進位邏輯左移cf移入dx最低位
彙編怎樣編寫將dx,ax中的雙字右移4位的指令序列
7樓:塔塔妹
mov cl, 4 ;設定迴圈次數為4
shr ax, cl ;實現將ax邏輯右移mov bl, dl ;將dl的低4位暫存在bl中shr dx, cl ;實現將dx邏輯右移shl bl, cl ;將bl邏輯左移
or ah, bl ;將bl或上ah ;也就是使dl的低4位或上ah高4位,從而實現了dx、ax中的雙字右移四位。
8樓:匿名使用者
1。 ax右移4位
2。 將dx低4位想個方法拷貝到ax的高4位上3。 dx右移4位
沒啥難的啊。
求組合語言期末複習題
組合語言,把(dx,ax)中的雙精度數右移n位
9樓:永恆
mov cx,n
lp:shr dx,1
rcr ax,1
loop lp
組合語言中的問題求高手解,組合語言中的一個問題求高手解
mov ax,a cmp ax,b bnz l 執行else mov bx,0 mov d,ax jmp ll l ll if的下一條語句復 bnz 標號制 若上一條指令執行的結果非零,就跳到標號執行他是判斷flag暫存器的zf位,若結果不為0,則 跳轉到標號處 組合語言程式的一道題。求高手解答 你...
一段C語言程式解讀,求完整,求一段C語言程式的完成功能解釋
這題目我見過,不過貼上時好像被 吃掉 了 號,照此程式的話會死迴圈的。中間部分應該回是 void func1 int i void func2 int i 程式的分析如下 從main 開始執行,呼叫fun1 0 先輸出h,然後i變為2,再呼叫fun2 2 在fun2中,輸出l,然後i變為4,再呼叫f...
組合語言中延時子程式的問題,我想請教一下有關組合語言延時子程式的問題下面的子程式有點看不懂,請大家幫忙解釋一下,謝謝
8086組合語言利用時鐘中斷精確些的延時的精度只能達到1 18.2秒。比這個還要高的要求只能利版用指令執行的時鐘權週期數來設計了,這樣編制的延時程式和cpu的頻率緊密相關,要編制通用些的,只能在程式中先進行檢測,依據檢測結果自動調整延時程式中的引數。delay mov r2,3 djnz r2,no...