首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在汇编程序NASM中生成端点行

在汇编程序NASM中生成端点行
EN

Stack Overflow用户
提问于 2015-01-07 16:08:34
回答 1查看 212关注 0票数 0

我想问一下在NASM汇编程序中制作馈线的问题。此时此刻,我们在大学里创建了一些简单的程序。

当我之前想要做结束行时,我只是声明了字节,并在里面覆盖了"0ah“。就像这样:

代码语言:javascript
运行
复制
section .text
global _start

_start:

mov eax,4
mov ebx,1
mov ecx,variable
mov edx,1

section .data
variable db 0ah

这很管用,但要花很长时间。因此,我希望直接将"0ah“写入寄存器,而不需要初始化变量,方法是:

代码语言:javascript
运行
复制
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

EN

Stack Overflow用户

回答已采纳

发布于 2015-01-07 16:26:37

您可以使用.data部分来表示您想要使用的字符串值,比如\n或您想要使用的其他字符串,以及使用C函数printf和scanf来处理IO。只需添加:

代码语言:javascript
运行
复制
extern  printf, scanf

在asm文件开始时,然后:

代码语言:javascript
运行
复制
section .data
   input_n db  'n = ',0
   number   db  '%d',0   
   endofline   db  10,0 

并在.text部分中这样调用printf:

代码语言:javascript
运行
复制
mov eax,endofline
push    eax
call    printf
add esp,8

要编译,Makefile如下所示:

代码语言:javascript
运行
复制
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

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27823589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档