网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月27日漏签0天
汇编吧 关注:45,341贴子:164,423
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 3回复贴,共1页
<<返回汇编吧
>0< 加载中...

求助

  • 只看楼主
  • 收藏

  • 回复
  • 我的你不懂9
  • 加载执行
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这样一个计算器的形状是怎么实现的


  • asassasa11
  • 数据结构
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
触摸屏不


2026-03-27 21:56:45
广告
不感兴趣
开通SVIP免广告
  • 我的你不懂9
  • 加载执行
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
START:
MOV AX,DATAS
MOV DS,AX
call calculator
mov ah,02
mov bh,00
mov dl,17
mov dh,6
int 10h
again:
mov bx,offset DATA1
mov ah,1
int 16h
jz again
mov ah,0
int 16h
cmp ah,10h
je exit ;若为q,则退出程序
cmp ah,39h
je input ;若为空格,则跳到input开始进行数据的输入
jmp again ;否则跳到again重新检测按键
input:
mov ah,0
int 16h
cmp al,'1'
je disp_store
cmp al,'2'
je disp_store
cmp al,'3'
je disp_store
cmp al,'4'
je disp_store
cmp al,'5'
je disp_store
cmp al,'6'
je disp_store
cmp al,'7'
je disp_store
cmp al,'8'
je disp_store
cmp al,'9'
je disp_store
cmp al,'0'
je disp_store ;输入若为0-9,则跳到disp_store进一步显示和储存
cmp al,'+'
je disp_store
cmp al,'-'
je disp_store
cmp al,'x'
je disp_store
cmp al,'/'
je disp_store
cmp al,'='
je disp_store
cmp ah,1Eh ;若为回车,则跳到judge开始判断运算类型
je judge
cmp ah,10h
je exit ;若为q,则退出
jmp clr ;若为其他,则说明输入错误,那么跳到clr,进一步处理
disp_store:
mov ah,02
mov dl,al
int 21h ;显示刚刚输入的数据
jmp store ;跳回input
store:
mov [bx],al
inc bx
jmp input
judge:
cmp byte ptr[bx+2],'+'
je adder
cmp byte ptr[bx+2],'-'
je subber
cmp byte ptr[bx+2],'x'
je multiply
cmp byte ptr[bx+2],'/'
je divide
mov ah,02
mov dl,[bx+1]
int 21h
jmp input
就是这一段,到disp_store 都能运行,但是judge段里判断的 [bx+2]与四种符号不符合,每次都执行了后面的mov ah,02到 jmp部分的代码。比如我输入进去的是一个“12+12=",应该bx+2位置上的存取的是‘+’的asc码,但是我输出这个[bx+2]却是一个空格,不知道怎么弄了。。。请大神帮忙呀


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回汇编吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示