1.减法指令sub与取补指令neg
mov ax,0f12H ;
mov bx,0f14h ;
sub ax,bx ;
neg ax ;
hlt
neg指令取补码后ax为0002H
2.移位指令ror
mov ax,0f12H ;
mov cx,0f10h ;
ror ax,cl ;
hlt
ror 循环右移指令
格式:ror opr,cnt
对标志位的影响:of,cf
将给定的操作数循环右移cnt次。在一词意为中,目的操作数的最低位移入cf,其余位均向右移位,并且最低位移入最高位。
3.统计16位二进制中“1”的个数
mov ax,1289h
mov bl,00h
mov cx,0010h
aa:shl ax,1
jnc next
inc bl
next:loop aa
hlt
4.统计16位二进制中“0”的个数
mov ax,1289h
mov bl,00h
mov cx,0010h
aa:shl ax,1
jc next
inc bl
next:loop aa
hlt
5.al的值为:(daa指令、inc指令和loop指令的应用)
mov cx,0008h
mov bl,01h
xor al,al
aa:add al,bl
daa
inc bl
loop aa
hlt
daa指令:加法的十进制调整指令
格式:daa
操作:如果af为1,或者al寄存器的低4位在十六进制数a~f中,则al寄存器内容加上06h,并且将af置1。如果cf为1,或者al寄存器的高4位在十六进制数a~f中,则al寄存器内容加上60h,并且将cf置1。
6.push指令与物理地址
mov ax,1000h
mov ss,ax
mov sp,0200h
mov bx,3489h
push bx
hlt
7.1+2+3+...+100
mov cx,0064h
mov bx,0001h
xor ax,ax
aa:add ax,bx
inc bl
loop aa
hlt
8.第三章练习题2
mov ax,2000h
mov ds,ax
mov bx,2030h
mov si,bx
push bx
pop cx
xchg ax,si
add ax,0f01h
cwd
mov bl,0ffh
mul bl
mov al,01h
imul bl
hlt
9.第三章练习题7
mov ax,1234h
cmp ax,8234h
jc next1
cbw
next1:mov bx,9876h
cmp bx,ax
jb next2
shr ax,1
next2:and bx,1010h
hlt
10.第三章练习题10(写出顺序执行以下指令后,DX和AX的内容)
mov ax,1987h
mov dx,034ah
mov cl,04h
shl dx,cl
mov bl,ah
shl ax,cl
shr bl,cl
or dl,bl
hlt
11.第三章练习题12
mov ax,6789h
mov cx,0010h
xor ax,ax
jnz next
shr cx,1
rol ax,cl
jmp next1
next:ror ax,cl
next1:hlt
12.第三章练习题13
mov cx,0007h
mov bl,11h
and al,00h
aa:add al,bl
daa
inc bl
loop aa
hlt
13.第三章练习题14
mov ax,8456h
mov [1000h],ax
mov bx,3634h
sub bx,[1000h]
jns next
neg bx
next:hlt
14.第三章练习题15
mov dx,1234h
mov ax,5678h
sub ax,3210h
sbb dx,7654h
hlt
15.第三章练习题16
mov dx,1234h
mov ax,5678h
add ax,3210h
adc dx,7654h
hlt
16.第三章练习题17
xor ax,ax
mov di,1000h
mov cx,0064h
cld
rep stosb
hlt
17.第三章练习题18
mov ax,23h
mov di,1000h
mov cx,0064h
cld
rep stosb
hlt