1.AX寄存器中存放了两位十进制数(如26),编写程序,将AX中的数显示到显示器上。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,26
mov bh,10
div bh;ax/bh 商存al,余数存ah
mov ch,ah;将商存到ch中
add al,48
mov dl,al;将余数存到dl中,输出必须存到dx寄存器中
mov ah,2
int 21h;输出余数
add ch,48
mov dl,ch
mov ah,2
int 21h;输出商
MOV AH,4CH
INT 21H
CODES ENDS
END START
2.从键盘上输入两个数字字符,算出相应的数值(例如输入'2'、'6',计算出26)
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov cl,10
mov ah,1
int 21h;输入
sub al,48
mov bl,al;输入2转到bl,因为ax接下来会改变
mov ah,1
int 21h
sub al,48
mov ch,al;输入6转到ch
mov al,bl;再将bl转回al,因为mul是al与一个数相乘
mul cl;al*cl
add al,ch
mov ah,0;因为ah中数有被改变过,所以重新置零
mov bh,10;输出同上题
div bh
mov ch,ah
add al,48
mov dl,al
mov ah,2
int 21h
add ch,48
mov dl,ch
mov ah,2
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START