希望这些问题相对简单:(NASM编译器、Linux、x86 Intel语法)
第一部分:
我正在尝试弄清楚如何使用汇编程序的.bss部分来存储值,例如从操作(+ - * /)中获得的值,以便将其存储到已声明的变量中。例如:
section .bss
variable: resb 50 ;Imaginary buffer
section .text
add 10,1 ;Operation
;move the result into variable
我知道可以使用内核中断来读取用户输入(但那涉及到字符串),但有没有一种方法将该值复制到变量变量中,以便稍后使用?这比必须在堆栈上推送和弹出两个值要容易得多。
第二部分:
是否有一种方法可以删除.bss部分中变量的值?换句话说,如果我想在.bss变量中存储新值,如何做到不会使变量中已有的字符/值与新值合并?
谢谢
mov dword [变量], 123
。通常情况下,您可以直接使用寄存器而不需要进行任何静态存储,但如果您确实需要将常量存储到内存中,则可以直接执行,而无需通过寄存器进行跳转。 - Peter Cordes