汇编语言程序设计——两数相乘
汇编语言程序设计——两数相乘例子:从键盘输入两个一位的十进制数,做乘法运算。相乘的结果保存在存储单元 X 中,算式显示在屏幕上。用简化的程序格式。设计思路(1)用 DOS 中断调用的 1 号功能输入数据,用 2 号功能显示结果,9 号功能显示提示信息;(2)做乘法时必须将输入数字的 ASCII 码去掉,转换成数值;(3)乘法之后用十进制调整指令 AAM;(4)将要显示的...
·
汇编语言程序设计——两数相乘
例子:从键盘输入两个一位的十进制数,做乘法运算。相乘的结果保存在存储单元 X 中,算式显示在屏幕上。用简化的程序格式。
设计思路
(1)用 DOS 中断调用的 1 号功能输入数据,用 2 号功能显示结果,9 号功能显示提示信息;
(2)做乘法时必须将输入数字的 ASCII 码去掉,转换成数值;
(3)乘法之后用十进制调整指令 AAM;
(4)将要显示的数值变为 ASCII 码。
test3-3.asm
;用一号功能从键盘输入两个一位的十进制数,相乘的结果保存并显示
.model small
.data
x db ?,?
infor db 'input:','$'
.stack 100h
.code
start:
mov ax,@data
mov ds,ax
mov dx,offset infor
mov ah,9 ;显示提示信息"input:"
int 21h
mov ah,1 ;键盘输入
int 21h
sub al,30h ;去掉ASCII码
mov bl,al
mov dl,2ah ;显示乘号*
mov ah,2
int 21h
mov ah,1 ;输入第2个数
int 21h
sub al,30h
mov ah,0
mul bl ;相乘
aam ;十进制乘法调整,乘积的高位数在AH,低位数在AL中
mov x,al ;保存结果
mov x+1,ah
add ax,3030h ;加上ASCII码
mov bx,ax
mov ah,2
mov dl,3dh ;显示'='
int 21h
mov dl,bh ;显示结果
int 21h
mov dl,bl
int 21h
mov ah,4ch
int 21h
end start
masm test3-3.asm
link test3-3.obj
test3-3.exe
运行结果:

更多推荐


所有评论(0)