汇编-判断一个两位十进制数是否为平方数

汇编-判断一个两位十进制数是否为平方数

思路
这道题的思路非常简单,枚举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

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值