繁体   English   中英

打印整数NASM

Print an integer NASM

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试从用户那里读取3个数字,并将它们存储在一个数组中,然后在NASM中使用paul carter函数向他们展示它们,这是我的代码:

%include "asm_io.inc"

SECTION .bss 

tab resb 3

SECTION .data 
msg db "Un nombre :",10 

SECTION .text 
 global main 
      main:
    mov esi,tab 
    xor ecx,ecx 
get_data:   
    mov eax,msg 
    call print_string 
    call read_int 
    mov [esi+ecx],eax   
    inc ecx 
    cmp ecx,3 
    jne get_data
    call print_nl
    xor ecx,ecx 
    mov edi,tab 
print_data: 
    mov eax,[edi+ecx]
    call print_int 
    inc ecx 
    cmp ecx,3 
    jne print_data 






    mov eax,1 ; exit code 
    int 0x80 ; call exit 

问题是它不执行print_data循环而退出。

1 个回复

只是要清楚。 这些是您所做的更改吗? 即使ECX寄存器不用作特定功能的输入或输出,它也可能在内部使用。 这就是Michael所说的“ ecx通常是保存呼叫者的”

%include "asm_io.inc"

SECTION .bss 

tab resd 3

SECTION .data 
msg db "Un nombre :",10,0

SECTION .text 
global main 
main:
mov edi,tab 
xor ecx,ecx 
get_data:
push ecx   
mov eax,msg 
call print_string 
call read_int 
mov [edi+ecx*4],eax   
pop ecx
inc ecx 
cmp ecx,3 
jne get_data
call print_nl
mov esi,tab
xor ecx,ecx  
print_data: 
push ecx
mov eax,[esi+ecx*4]
call print_int 
pop ecx
inc ecx 
cmp ecx,3 
jne print_data 

mov eax,1 ; exit code 
int 0x80 ; call exit 
1 NASM打印整数与Printf

我一直在尝试以下代码将数字0打印到控制台屏幕: 但是,它打印4210688而不是打印0 。 究竟出了什么问题? 这是使用NASM和MinGW组装和链接的 ...

3 NASM 程序不打印常量整数 (macOS)

我尝试打印b ,但它什么也没打印。 我还想找到b长度来对其进行硬编码(因为dw具有相同的长度),但它也没有打印任何内容(这就是我创建lenlen — len of blen ,以便我可以打印blen )。 不要注意k和a ,它们还没有使用。 ...

5 关于在Assembly(NASM)中打印(具有多个数字的整数)的困惑

因此,我是汇编语言的初学者,目前正在阅读有关YT的一些教程,现在我正在进行一项应打印整数的练习。 现在,我了解了所有这些代码背后的算法,或更确切地说,了解了它如何实际打印该整数的过程。 问题是,我不确定这是否正是我在代码方面的想象。 例如,给我提供了数字整数的digitSp和应该用作某 ...

6 用nasm打印`argv []`

我正在尝试使用nasm打印提供给程序的命令行参数: 但是,这只打印垃圾(我相信这应该打印argv[0] , argc-1次。)。 我正在用以下代码编译我的代码: 怎么了? 顺便说一句,使用 dword[ebp+8] 可以正常工作来拾取 argc 。 我在ubun ...

2016-09-07 19:19:34 2 666   nasm
7 Nasm,没有打印正确的值

我做了一个nasm程序来计算一定大小的两个向量之间的eucledian距离。 这个nasm函数是从C文件中调用的,它获取函数的结果。 我已经测试了,它的工作原理,返回的值是正确的,我可以用任何问题打印出来。 我的问题是当我尝试在nasm文件中打印结果时。 这是nasm代码: 这是 ...

8 为什么此NASM组件不打印?

我正在尝试学习NASM Assembly(在Linux上,因此是AT&T语法),但是我一直试图通过syscall打印“ Hello World”。 下面的代码可以汇编并正常运行,但不会显示任何内容。 有什么线索吗? 更新 :我找到了。 我需要在“ string1”前面包含一个$符号 ...

9 3位数整数到nasm中可打印的3位数字符串?

我的程序即将完成,是由于明天。 但是,我已经确定了问题的根源。 我正在循环使用一些将骰子掷出1-6并将其结果添加到缓冲区以保持得分的功能。然后当我要打印时,我只能打印一位整数和带有两位数字的任何内容,例如10或更大的循环无限循环地通过我的write_number函数,直到出现段错误。 我如 ...

10 如何在Mac上的x86汇编(NASM)中打印带符号整数

我在x86汇编中找到了一个无符号整数转换的实现 ,我尝试将其插入,但是对于汇编来说是新手,并且那里还没有调试环境,很难理解为什么它不起作用。 我还希望它与带符号整数一起使用,以便它可以捕获来自syscalls的错误消息。 想知道是否可以显示如何解决此代码以获取带符号的整数以进行打印,而无 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM