我想问一下在NASM汇编程序中制作馈线的问题。此时此刻,我们在大学里创建了一些简单的程序。
当我之前想要做结束行时,我只是声明了字节,并在里面覆盖了"0ah“。就像这样:
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,variable
mov edx,1
section .data
variable db 0ah这很管用,但要花很长时间。因此,我希望直接将"0ah“写入寄存器,而不需要初始化变量,方法是:
section .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,10 ;; hexadecimal 0ah
mov edx,1但不起作用。我会寻求帮助。
Ps。如果有人有时间,请检查我以前的关于寄存器工作的线程:Binary representation in processor's registers in Nasm
发布于 2015-01-07 16:26:37
您可以使用.data部分来表示您想要使用的字符串值,比如\n或您想要使用的其他字符串,以及使用C函数printf和scanf来处理IO。只需添加:
extern printf, scanf在asm文件开始时,然后:
section .data
input_n db 'n = ',0
number db '%d',0
endofline db 10,0 并在.text部分中这样调用printf:
mov eax,endofline
push eax
call printf
add esp,8要编译,Makefile如下所示:
main: main.o factorial.o
gcc -o main main.o facto.o
%.o: %.asm
nasm -f elf $^
clean:
rm -f a.out core *.o *~ main在哪里,main.asm将是您的主要asm程序和factorial.asm及其他的拘留,让我们假设因素作用在nasm
https://stackoverflow.com/questions/27823589
复制相似问题