汇编语言程序设计——两数相乘

汇编语言程序设计——两数相乘

例子:从键盘输入两个一位的十进制数,做乘法运算。相乘的结果保存在存储单元 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

运行结果:

汇编语言程序设计——两数相乘_第1张图片

你可能感兴趣的:(汇编语言)