assembly - ASM x86_64 小程序
问题描述
我正在学习汇编语言 x86_64(英特尔语法),并且我制作了一个应该打印数字的小程序(现在向后,我稍后会做一个真正的 putnbr)
所以我这样做了,但它不起作用......我想知道它的逻辑是否仍然正确以及我是否走在正确的轨道上。不要给我答案,我会找到的。我只是想知道我是否应该继续这样做,或者我是否完全搞砸了。如果我是我应该寻找的东西。此外,请随时分享有关汇编语言的任何提示和良好实践。
section .text
global _start
_start:
mov rax, 123 ;initializing our nbr
call _printRAXLoop ;calling printing function
mov rax, 60 ;three lines
mov rdi, 1 ;for
syscall ;exit(0);
_printRAXLoop:
mov rdx, 0 ;setting rdx(rest of the div) to 0
mov rbx, 10 ;setting rbx = 10
div rbx ;dividing rax by rbx
push rax ;pushing rax to the stack (to save its value)
add rdx, 48 ;add 48 to rdx
mov rax, 1 ;ID for write()
mov rdi, 1 ;file descriptor
mov rsi, rdx ;buffer
mov rdx, 4 ;buffer_size
syscall ;calling write()
pop rax ;getting rax value back
cmp rax, 0 ;comparing rax to 0
jne _printRAXLoop ;if ^ not equal then loop
ret
谢谢
解决方案
推荐阅读
- assembly - 汇编语言 - 查找数组中的最大数
- javascript - 谷歌云存储对象的 JS 获取给出了不透明的响应
- intellij-idea - 是否可以并排安装多个 AppCode 版本
- sql - LEFT JOIN IN BigQuery 语法错误:预期输入结束,但在 [7:1] 处打开关键字
- javascript - 如果参数值是对象数组中的属性,则反应/Javascript
- javascript - 将 npm 依赖项代码与我们的代码捆绑在一起是一种好习惯吗?
- python - TypeError:只能将str(不是“int”)连接到str123
- ocr - Google Cloud Vision API 无法检测到货币符号
- javascript - Javascript spread async generator into Array
- c - 需要cs50滤镜灰度的一些初始方向