macos - 比较输入到在 x86_64 Mac 程序集 nasm 中不起作用的字符
问题描述
在具有处理器架构 x86_64 的 mac 上的 nasm 汇编中,我正在努力将输入与字符串或字符进行比较。将输入(stdin)与字符进行比较时,它应该是不正确的。我是组装新手。
这是我的代码。
global start
section .bss
input resb 10
section .text
start:
;getting the input
mov rax, 0x2000003 ;meaning read
mov rdi, 0
mov rsi, input
mov rdx, 10
syscall ;special
;here is where I do the comparing
mov rax, r
mov rbx, input
cmp rax, rbx
je right
;jumping to the return function
jmp ret
right:
mov rax, 0x2000004 ;meaning write
mov rdi, 1
mov rsi, right_way
mov rdx, right_len
syscall ;special
ret:
mov rax, 0x2000001 ;return 0
xor rdi, rdi ;which means to make rdi = 0 could be replaced with mov rdi, 0 but xor is faster
syscall
section .data
right_way: db "You are correct!", 10, 0
right_len: equ $-right_way
r: db "r", 10
在“je right”行,它应该跳转到正确的函数,但它没有。我需要将输入转换为其他内容吗?帮助将不胜感激。谢谢!
解决方案
推荐阅读
- php - 如果所有变体都缺货,则从目录中隐藏 WooCommerce 可变产品
- svg - SVG 中的 Google 字体 src url
- ios - CollectionView 单元中的 Swift CollectionView 单元 - 呈现新的视图控制器
- typescript - typeorm 错误:列中的空值违反非空值:在 fk 中允许空值
- python - Marshmallow - 添加参数以包含子实体
- python - 如何让不和谐机器人找到并移动到特定用户的当前语音频道
- python - 不和谐.py | 加入公会时如何让bot标签成为公会的所有者?
- javascript - Javascript:检查数组是否有特殊符号
- swift - 在 Swift 中向本地服务器发出发布请求时出现 400 错误
- go - 使用 gorilla/websocket 订阅 websocket