1、 mov al,97H
mov bl, 8AH
add al,bl
执行上面三条指令后,al中的值是多少?CF、OF、SF、ZF分别是多少?请给出al和bl对应的8个二进制位加法式子。
122H 1 1 1 0
2、 把al中的数以二进制形式显示。(如果al=9,显示00001001。需要用到rol指令和and指令)
DATAS SEGMENT
;此处输入数据段代码
a1 byte 9
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
;二进制显示十进制数
mov si,offset a1
call Display_binary_numbers
MOV AH,4CH
INT 21H
Display_binary_numbers proc
push bx
push cx
push dx
mov al,[si];给al赋值
mov cl,al;al会返回输出的字符,所以用cl存值
mov bl,1
mov bh,8
D1:
rol cl,1
sub bh,1
mov dl,cl
and dl,bl
add dl,48
mov ah,2
int 21h
cmp bh,0
je Dover
ja D1
Dover:
pop bx
pop cx
pop dx
ret
Display_binary_numbers endp
CODES ENDS
END START
DATAS SEGMENT
a1 db 12,2,113,4,5
a2 word 12,2,113,4,5
srcstring db 'abcd'
a3 db 'testtesttest'
DATAS ENDS
EXTRAS SEGMENT
b1 db 1,2,3
deststring db lengthof srcstring dup (?)
b2 db 1,2,3,4,5
EXTRAS ENDS
STA