我读过关于汇编语言的书籍,关于指令的一章。我明白mov指令在做什么,但我不明白如何检查并看到结果。我写了一个你好的世界。如何查看寄存器上的值?
.global _start
.data
some_var:
.long 0x000721
.text
_start:
mov $1, %rax # system call 1 is write
mov $1, %rdi # file handle 1 is stdout
# mov $message, %rsi # address of string to output
mov $0x1, %rsi
mov $2, %rdx # number of bytes
syscall # invoke operating system to do the write
# exit(0)
mov $60, %rax # system call 60 is exit
xor %rdi, %rdi # we want return code 0
syscall # invoke operating system to exit
message:
.ascii "Hello, Universe)\n"
但为什么它不起作用。我如何看到内存和注册的价值?
os:linux(debian)。英特尔64位
这不是它的答案或改进,只是一个评论。我建议你学会使用调试工具。即使使用'printf()'实现可能在某些情况下很难(例如不可靠)查看值。看看'gdb'。对于一些类UNIX系统来说,它是一个非常好的工具。 – Jack 2013-03-23 16:58:46
谢谢。这是非常好的评论! – volkov 2013-03-23 20:37:31