我讀過關於彙編語言的書籍,關於指令的一章。我明白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