汇编语言的新手,在这里读书。我试图做一个简单的基本练习。使用适当的寄存器,我必须添加100,200,300,400,500。不知道从哪个程序开始。这是程序的大纲,现在我需要添加寄存器。根据我对本书的理解,这就是我所拥有的。不知道如何继续添加。
(AddSub.asm)
INCLUDE Irvine32.inc
.code
main PROC
mov eax, 100
add eax, 200
exit
main ENDP
END main
答案 0 :(得分:3)
如果您有使用 C 等高级语言的经验,那么这些行:
mov eax, 100
add eax, 200
会做类似的事情:
int eax;
eax = 100; /* mov 100 to EAX */
eax = eax + 200; /* add 200 to EAX */
如果您想添加其他数字,请继续添加 EAX ,例如:
add eax, 300
add eax, 400
您可以使用除 EAX 之外的其他寄存器(例如 EBX , ECX , EDX , ESI , EDI )。您也可以将这些寄存器一起添加。例如
mov eax, 100
mov ebx, 200
mov ecx, 300
add eax, ebx
add eax, ecx
这类似于:
int eax = 100;
int ebx = 200;
int ecx = 300;
eax = eax + ebx; /* add EBX to EAX */
eax = eax + ecx; /* add ECX to EAX */
这将导致 EAX
中的值为600使用 Irvine32 库,您可以通过调用WriteInt
函数将 EAX 的内容打印为有符号整数:
call WriteInt
答案 1 :(得分:2)
只需添加更多add
说明:
add eax, 300
add eax, 400
add eax, 500
您还必须在exit
行之前以某种方式打印出结果。
答案 2 :(得分:0)
我认为您应该在-- %>%
dplyr::summarise(bfat = mean(bfat))
指令后立即将add
数字添加到eax寄存器中。从小知识我知道这就是eax的用途。
mov
我希望这会有所帮助。