-
需求:从键盘上输入一个10进制数字,查表求键入数字的平方值 存入al寄存器中 并显示有关的提示信息
-
实现思路:在程序的数据段,先给出数字0-9的平方值 逐个存入table开始的内存中 形成表格 代码段由3部分组成,显示提示信息
-
等待键入数字 查表求键入数字的平方值 并将结果显示在屏幕上
data segment
table db 0,1,4,9,16,25,36,49,64,81 ;数字 0-9的平方值
buf db 'please input a number (0-9):',0dh,0ah,'$'; 提示信息 ;汇编中 定义字符串要使用db字节类型 0dh 回车 0ah换行
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax ;设置ds
mov dx,offset buf ;设置dx 使字符串首地址=ds:dx
mov ah,9h; ;dos 9号 功能调用 显示以$结尾的字符串
int 21h ;显示提示信息
mov ah,01 ;dos 1 从键盘输入字符 并在屏幕上显示
int 21h ;al-键入数字的ascll码
and al,0fh ;al-截下数字值
mov bx,offset table ;bx指向头地址table
mov ah,0 ;ax寄存器高字节清0
add bx,ax ;表头地址+键入数字al 结果存入bx
mov dl,[bx] ;查表求得平方值
mov ah,02
int 21h ;01从al输入,02从dl输出字符
mov ax,4c00h ;程序结束
int 21h ;返回dos
code ends
end start