如何将值从 .data 移动到 NASM 中的寄存器?
How to move value from .data to register in NASM?
我是汇编语言的初学者。我尝试将两个数字相乘。
section .data
a dw 1;
b dw 2;
global _start
section .text
_start:
mov eax, [a];
mov ebx, [b];
movv:
mul ebx;
mull:
mov eax, 1;
mov ebx, 0;
int 80h;
我使用以下命令编译并运行它:nasm -g -f elf pr1.s && ld -m elf_i386 pr1.o -o pr1 && gdb ./pr1
当我在 gdb 中查看寄存器 eax 值时,我得到 131073 和 ebx 65538
为什么我得到这个值而不是 1 和 2?
在评论中,Michael 回答了我的问题,将 dw 更改为 dd 解决了问题。
我是汇编语言的初学者。我尝试将两个数字相乘。
section .data
a dw 1;
b dw 2;
global _start
section .text
_start:
mov eax, [a];
mov ebx, [b];
movv:
mul ebx;
mull:
mov eax, 1;
mov ebx, 0;
int 80h;
我使用以下命令编译并运行它:nasm -g -f elf pr1.s && ld -m elf_i386 pr1.o -o pr1 && gdb ./pr1
当我在 gdb 中查看寄存器 eax 值时,我得到 131073 和 ebx 65538
为什么我得到这个值而不是 1 和 2?
在评论中,Michael 回答了我的问题,将 dw 更改为 dd 解决了问题。