nasm

    1热度

    1回答

    我有一个导出两个函数的程序集文件。函数名称为NASM_RDRAND_GenerateBlock和NASM_RDSEED_GenerateBlock。这些符号缺少领先的下划线装饰。该文件与NASM汇编。 在C/C++代码中,符号名称被声明为extern "C"以避免发生混乱。 Linux和Cygwin下的链接按预期工作。在OS X链接失败: ... Undefined symbols for ar

    1热度

    1回答

    我正在建立一个小型操作系统作为我自己的一个挑战。我在网上阅读了很多文章,说要覆盖中断向量表,您需要更改0000的物理地址:中断号* 4和0000:(中断号* 4)+2。 我写下了一段完全相同的代码,但试图在虚拟机上运行它时,没有任何反应。你们中的任何一个人可以分享他们的知识,并告诉我错在哪里?这是我的代码: mov ax,0 mov es,ax mov ax,cs ;; set ax to t

    0热度

    1回答

    我正在学习Docker for Mac上的Ubuntu 16.10上的x86_64 NASM程序集。 以下程序需要两个命令行参数,并对它们进行求和。 如果命令行参数的数量不是两个,则显示错误消息(跳转到argcError)。 当我执行这个程序时,它跳转到argcError节,尽管传递给两个命令行参数。 为什么这个程序跳转到argError? section .data SYS_WRITE

    1热度

    1回答

    环境:Windows 10.我恰好在使用MinGW版本的ld进行链接,但如果使事情变得更简单,我很乐意使用视觉工作室link.exe。 ,我有以下基本程序在NASM: global _main extern _printf section .text _main: push message call _printf add esp, 4

    0热度

    1回答

    我试图 $ man ld ,他们已经提供了-s选项的定义,有点以上我的理解程度。剥离符号意味着什么?请指定我认为有用的任何链接。谢谢。

    0热度

    1回答

    我想在初始化的数据部分创建一个包含5个字符串的数据数组。每个字符串都有4个字符。每个字符串都有一些初始数据,如第一个字符串的“abcd”,第二个字符串的“efgh”等等。空\0字符不需要任何字符串。我怎样才能用汇编语言初始化字符串数组? 这是我能想到的,到目前为止: string db "abcdefghijklmnopqrst" 有一些清晰的语法或方法? 我对64位代码使用nasm。

    2热度

    1回答

    编写一个名为SUB64的程序,从0x0160和0x0164中的64位整数中减去内存位置0x0150和0x0154中的64位整数。将结果存储在内存位置0x0170和0x0174中。 我知道把它分成小块的逻辑,因为我们无法将64位写入寄存器。我知道我们先减去最不重要的部分。我正在努力实际编码。这与我们使用的GPIO有关系吗?这是我的榜样,所以也许你可以看到我在想什么。也许我不是那么遥远,但感觉就像它。

    2热度

    1回答

    学习https://github.com/cfenollosa/os-tutorial/tree/master/05-bootsector-functions-strings,我一直在试图编写自己的引导扇区。 我正在尝试打印给定的字符串。 这些是我的两个文件: boot_main.asm [org 0x7c00] mov bx, hello call print jmp $ hello

    -1热度

    1回答

    我得到一个分段错误以下汇编代码得到插座 global _start struc sockaddr_in .sin_family resw 1 .sin_port resw 1 .sin_addr resd 1 .sin_zero resb 8 endstruc struc img .source_ip resb 4 .int_i

    0热度

    2回答

    这是一个关于我的作业,特别是关于NASM的问题。 我正在写一个算法来查找数字的最小整数。 (大于1) 在伪代码可以概括为: if(n%2==0) return 2; for(i=3; i <= n/2; i+=2) if(n%i==0) return i; return n; 该方案是仅比为大量的要求稍微慢一些。 (n> 1 000 000 000) 最明显