程序集Yasm x64将存储的字符串与用户输入的字符串进行比较

时间:2018-08-29 19:58:29

标签: assembly x86-64 yasm

我需要在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

0 个答案:

没有答案