我需要在x64汇编中构建一个计算器程序,在该程序中用户输入两个数字,然后程序要求用户输入一个运算符(+,-,*,/)。我正在尝试将输入与存储的变量进行比较,以便可以将输入与那些变量进行比较并执行用户指定的操作。
在gdb中运行程序时,我看到如果我打印/ c表示运算符和变量:加法(当我将运算符设置为+
时),它们都存储相同的值,但是存储在cmp
中它不会跳到适当的代码块
我的代码有点像
segment .data
mult db "*"
divide db "/"
addition db "+"
subtract db "-"
operator db ""
segment .data
global _start
_start:
;;get user input, set operator from rsi using syscall
mov r13,[operator]
mov r12,[addition]
cmp r12,r13 ;; my problem is somewhere here
je addFunction ;;Jump to addition operation
mov r12,[subtract]
cmp r12,r13
je subFunction