比较'+'符号汇编x86

时间:2016-01-11 08:17:00

标签: assembly x86

我正在尝试将命令行中的参数与'+'进行比较。如果它相等,它应该添加:label。我得到三个参数2个数字和符号,我想比较。不幸的是,比较不起作用。

我的代码:

main:
mov eax,[esp+8]
mov ecx,[eax+4]  //first argument
mov ebx,[eax+8]  //second argument
mov esi,[eax+12] //third argument
mov eax,esi 
cmp eax,'+'
je add
    jmp end

add:
//rest of code

1 个答案:

答案 0 :(得分:5)

mov esi,[eax+12] //third argument
mov eax,esi 
cmp eax,'+'

你在这里做的是将一个字符(通常是一个字节)和 32位地址作为第三个参数的字符串进行比较。这显然不会匹配。

适当的比较是:

mov esi,[eax+12] //third argument
cmp byte [esi],'+'  ; compare the first character of the third argument with '+'