nasm

    3热度

    3回答

    我想使用特定值初始化程序集中的数组。我试着先在循环中做它,但在数组中得到垃圾。然后我尝试手动做,并得到同样的垃圾。我希望数组重复n 1 2次n次。以下是我尝试的一些示例代码。 这是我尝试手动加载数组。第一个值加载得很好。然而,当我在GDB中检查它时,第二个值会加载垃圾。 sub esp, 260 mov [ebp - 12], dword -1 mov [ebp - 16], byte 0

    2热度

    1回答

    NASM返回如下错误:“在64位模式下不支持指令”,我无法弄清楚该怎么做。主题指令是弹出和推送命令。我可以使用什么来代替它们,或者有其他方法可以解决此问题吗? 最好的问候......(我使用64位系统 - 英特尔酷睿i7处理器)

    1热度

    1回答

    我试图制作一个汇编程序,它带一个数字,然后打印出来。但是当我写1时,它写了4171.为什么,我该如何解决它?我使用的是64位程序集,我用nasm -f macho64 scanf.asm组装了它,并且我将它与gcc -o scanf scanf.o -Wl,-no-pie联系起来。我试图在扫描宏的数字周围使用方括号(用于指向可变数字的指针),但是nasm mach-o不允许它,所以我没有这样做。

    0热度

    1回答

    这是一个简单的问题,但它让我头晕目眩。我需要将一串字符(输入为负十进制数)转换为无符号整数。 rdi寄存器保存要转换的字符串。 rax寄存器将保存结果。 xor rsi, rsi xor rax, rax xor dl, dl xor rdx, rdx convert: mov dl, [rdi+rsi] ;+rsi causes segmentation

    1热度

    2回答

    因此,在引入一些装配以获得乐趣之后,我现在停留在调用过程中。 ... _start: push dword len push dword msg call print mov eax, SYS_EXIT mov ebx, 0 int 80h print: ; *char (message), int (len) -> push

    0热度

    1回答

    我想在NASM汇编程序中使用strstr C函数,但似乎无法使其正确打印出来。我尝试了多种变化,但我想我可能会误解NASM如何从C返回指针值,因为我在printf或'(null)'中返回空行。为什么我无法获得正确的印刷回报值?有些人可以帮我填补吗? section .data str1 db "Here is some text with a word",0x0A,0x00

    -4热度

    1回答

    它是管理联系人的代码。即添加,删除,搜索,列表,编辑。 我想下面的c代码的asm代码。我的代码在c中的net beans上运行。所以我需要的汇编语言代码为我的程序 #include<stdio.h> #include<conio.h> #include<string.h> #include<process.h> #include<stdlib.h> #include<dos.h

    0热度

    2回答

    可以为程序集中的字符串赋一个int值吗? 例如,我把>>老鼠= 2,当我调用使用的变量,如果我把>>鼠+ 2方案,它必须返回4. 而且,如果可能的话,这是做到这一点的最佳方式? 任何帮助将不胜感激。

    0热度

    2回答

    我正在尝试做一个非常简单的汇编程序运行,但是我似乎无论我做什么都会出现段错误。 这里是我的代码(应打印“A”在Linux机器上) section .data buffer times 50 db 97 pointer db 0 section .text global _start _start: mov ECX , pointer m

    1热度

    1回答

    递增64位内存有效地址我使用的中断0x13与扩展驱动器0x42的功能读取从我的扩展驱动器部门在实模式。 我定义DAP是在下面的结构的16个字节: DAP: db 0x10 ; size of DAP db 0 ; Reserved zero dw 0x0001 ; Number of sectors to read dd 0x00000200 ; M