assembly - 如何比较输入并检查数字是负数、正数还是零
问题描述
我为这个问题编写了初始代码,但我希望能够-1
作为输入。现在它只需要一个输入1
或-
然后显示结果。
我是汇编语言的新手,emu8086
所以如果有人可以帮助我解决这个问题,那真的会帮助我。
这是到目前为止的代码:
.model small
.stack 100h
.data
msg db 0ah,0dh,'negative$'
msg1 db 0ah,0dh,'positive$'
msg2 db 0ah,0dh, 'zero$'
.code
main proc
mov ax,@data
mov ds,ax
mov ah,1
int 21h
mov bl,al
mov cl,30h
cmp bl,cl
jl negative
je zero
jg positive
negative:
lea dx,msg
mov ah,9
int 21h
jmp END
zero:
lea dx,msg2
mov ah,9
int 21h
jmp END
positive:
lea dx,msg1
mov ah,9
int 21h
END:
mov ah,4ch
int 21h
main endp
end main
解决方案
如果您的输入是可选前缀为 a 的数字字符串-
,则应检查 a 可选-
而不是检查 ASCII 代码是 > 还是 < 30h
。如果您只支持一位数字,那么看到 a-
意味着您需要再读取 1 个字节。
推荐阅读
- javascript - html 文件不会将 onclick 属性读取为字符串
- vue.js - 创建新数据后如何更新 Strapi GraphQL 缓存?
- c++ - 无法使用安装程序下载和安装某些 MinGw 软件包
- echo - zsh:括号前保留斜线
- javascript - 如果使用 d3.create() 创建附加的 SVG,则不显示
- lotus-domino - 从 Web 上的按钮调用 Lotusscript 代理时,如何添加微调器,以便在代理完成之前用户知道它正在处理?
- excel - 使用 VBA 为任何 Windows 用户配置文件打开 SAP Logon Pad
- python - Heroku 无法运行我的 python 烧瓶应用程序
- sqlite - sqlite3查询每个id的一定数量的行
- android - 颤振溢出像素问题