mov ax,4652h
mov dx,234h
add ax,0f0f0h
adc dx,0
add dx,0f0f0h
2. 實現無符號雙字02344652h與0f0f0f0f0相減。
mov ax,4652h
mov dx,234h
sub ax,0f0f0h
sbb dx,0
sub dx,0f0f0h
3. 實現無符號數0B4h與11h相乘。
mov al,0b4h
mov ah,11h
mul ah
4. 實現有符號數0B4h與11h相乘。
mov al,0b4h
mov ah,11h
imul ah
5. 實現無符號數0400H除以B4H。
mov ax,400h
mov cl,0b4h
div cl
6. 實現有符號數0400H除以B4H。
mov ax,400h
mov cl,0b4h
idiv cl
7. 實現有符號數除法AX÷BX。
xor dx,dx
idiv bx
8. 已知AX=1234H,BX=4612H,計算1234-4612的差(顯示的是十進制數運算的結果)。
code segment
assume cs:code
a db 5 dup (?)
db "$"
s:push cs
pop ds
mov ax,1234h
mov bx,4612h
sub ax,bx
xor dx,dx
xor bx,bx
s1:
call divdw
add cx,30h
push cx
inc bx
or ax,ax
jnz s1
mov cx,bx
xor bx,bx
s2:
pop a[bx]
inc bx
loop s2
mov dx,offset a
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end s
9. 將BL中的D0和D4清零,其余位不變。
and bl,6
10. 將BL中的D0和D4置1,其余位不變。
or bl,9
11. 將BL中的D0和D4求反,其余位不變。
mov bh,bl
xor bl,0ffh
and bh,6
or bl,bh
12. 利用移位指令計算3×AX+7×BX,並賦值給DX,假設AX、BX都是無符號數,無進位。
mov dx,ax
shl ax,1
add dx,ax
mov ax,bx
shl bx,1
shl bx,1
shl bx,1
sub bx,ax
add dx,bx
13. 將DX.AX中的32位數值左移壹位。
clc
rcl ax,1
rcl dx,1
14. AH和AL分別存放著非壓縮BCD碼的兩位,將其合並成為壹個壓縮BCD碼存入AL。
and al,0fh
mov cl,4
shl ah,cl
and ah,0f0h
or al,ah
15. 比較無符號數大小,將較大的存放在ax
mov ax,x
cmp ax,y
ja s
mov ax,y
s:
...
16. 用02H號DOS系統功能調用在顯示器輸出壹個字符,這個字符為‘?’。
mov dl,"?"
mov ah,2
int 21h
17. 用09H號DOS系統功能調用在顯示器輸出壹個字符串,這個字符串為‘I am a student’。
a db "I am a student$"
mov dx,offset a
mov ah,9
int 21h
18. 將數據段source指示的‘Hello’字節數傳送到destination指示的主存區。
push ds
pop es
mov si,source
mov di,destination
mov cx,5
rep movsb
19. 用位操作指令實現AL(無符號數)剩余10。
and al,10
20. 用邏輯運算指令實現數字0~9的ASCII碼與非壓縮BCD碼的互相轉換。
這個不怎麽會.aaa指令不熟.
21. 有壹個100字節元素的遠足,其首地址為array,將每個元素減1(不考慮溢出)存於遠處。
mov cx,100
mov bx,offset array
mov ds,seg array
s:
dec [bx]
dec bx
loop s
請完整的操作並描述匯編語言程序開發的四大步驟。
這個妳自己找資料吧.