assembly - 简单 asm 程序集中的 GET_STRING 不返回字符串
问题描述
我是组装新手,并试图为课堂做一些小练习。
从用户那里收集 3 个输入变量:
- 第一个是数学运算符号(+ - 和 *)
- 第二个变量是要从其他数字中添加或减去的数字(第三个变量)
示例 1:用户应按顺序输入:+、4 和 5,得到 9
示例 2:用户类型 -、9、5 应该得到 4
我无法将数学运算符作为字符串进行比较,因此它陷入了加法问题。即使将符号更改为减号,它也只会添加数字。
尝试将 GET_STRING 更改为 GET_DEC 并使数字充当数学符号,它起作用了,所以我认为这是一个语法问题我无法弄清楚如何检查/验证 GET_STRING 输入或如何将其与逻辑进行完全比较
我正在使用简单的 sasm IDE/编辑器
这是我的代码提前感谢您的帮助
%include "io.inc"
section .data
section .text
global CMAIN
CMAIN:
mov ebp, esp; for correct debugging
GET_STRING [operation],8 // here I treid everything, even GET_CHAR didn't work
GET_DEC 4,[firstVar]
GET_DEC 4,[secondVar]
mov eax,[operation]
cmp eax, opAdd
je Addit
jne L2
L2:
mov eax,[operation]
cmp eax, opSub
je Subbit
jne L3
L3:
mov eax,[operation]
cmp eax, "*"
je Multit
Addit:
mov eax,[firstVar]
mov ebx,[secondVar]
add eax,ebx
jmp PRINT
Subbit:
mov eax,[firstVar]
mov ebx,[secondVar]
sub eax,ebx
jmp PRINT
Multit:
mov eax,[firstVar]
mov ebx,[secondVar]
mul ebx
jmp PRINT
PRINT:
PRINT_DEC 4,eax
xor eax, eax
ret
解决方案
推荐阅读
- python - 从分号分隔的键值对文件生成字典
- c++ - CMAKE 创建具有写权限的目录
- scala - Scala Window Partitionby 更新随机记录
- r - 使用自动绘图绘制 PCA 双图:修改箭头粗细
- transactions - 处理 Couchbase 中的耐久性要求失败
- mysql - MYSQL - 删除其行索引中的记录
- javascript - 如何在特定时间段后向 div 添加 css 规则,设置延迟,然后使用 jquery 添加一个 css 规则?
- api - Ocp-Apim-Subscription-Key 标头(Azure Api 管理)中的“Ocp”代表什么?
- scala - 将文本文件从 spark 保存到边缘节点
- symfony - Doctrine querybuilder,在多对多关系中包含元素