汇编-判断一个两位十进制数是否为平方数
思路
这道题的思路非常简单,枚举100以内的平方数,再判断是否与输入的数相等
但用汇编语言实现可能会有一些复杂
代码
data segment
x dw ?
s1 db ' is a square number$'
s2 db ' is not a square number$'
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
mov ah,01h//输入这个数的十位
int 21h
sub al,30h
mov bl,10
mul bl
mov x,ax//注意x是字类型
mov ah,01h//输入这个数的个位
int 21h
sub al,30h
mov ah,0
add x,ax//注意x是字类型
mov cx,9//循环次数,同时用来枚举平方数
L1:mov al,cl
mul al//求al中数的平方
mov ah,0
cmp x,ax//注意x是字类型
jz L2
loop L1
mov ah,09h//输出字符串s2
lea dx,s2
int 21h
jmp L3
L2:mov ah,09h//输出字符串s1
lea dx,s1
int 21h
L3:mov ax,4c00h
int 21h
main endp
code ends
end start
运行结果