使用汇编器创建纯二进制数据(无 ELF、符号表等)
我想将纯数据输入文件,即类似这样的文件: .data .org 0 .equ foo, 42 .asciz "foo" label: .long 0xffffffff .long 0x12345678 .byte foo .long lab…
引导加载程序磁盘缓冲区
最近我发现了一些简单的引导加载程序的源代码。以下是简单的单阶段引导加载程序 BITS 16 org 0x7c00 start: mov ax,07c0h add ax, 288 mov ss,ax mov …
我是否必须在从 C 调用的汇编代码中初始化 CPU 寄存器?
我正在阅读 Paul Carter 的 pcasm 书。它使用 NASM,一个调用我的汇编代码的 C 驱动程序应用程序,以及一个配套库,可以轻松地在汇编中执行基本 I/O。…
使用“db”、“dw”;在 MVC 中++汇编器添加
我应该使用什么来代替 __asm { db 0EAh dw 0000h dw 0FFFFh } ( http://msdn.microsoft.com/en- us/library/h70hd396.aspx ) 在 MVC++ 中?…
NASM - 从 USB 驱动器加载代码
任何汇编专家都知道表示第一个 USB 驱动器的参数(寄存器dl)吗? 我正在学习一些 NASM 教程,并且希望获得一个物理启动(我可以使用 qemu 获得一个干…
从引导扇区到 C++核心
我决定编写一个简单的 asm 引导加载程序和一个 c++ 内核。我读了很多教程,但我无法编译一个汇编文件,如下所示:( [BITS 32] [global start] [exter…
64 位 Linux 上的 SDL 和 nasm
我在使用 nasm 和 ld 时遇到问题,这就是我所做的: source: EXTERN SDL_Init SECTION .text global _start _start: push 0x20 call SDL_Init mov eax…
需要适用于 Windows 的简单“Hello-World”、无 null 的 shellcode
我想通过向控制台写入“Hello World”来测试缓冲区溢出(使用 Windows XP 32 位)。 shellcode 需要是无空的,以便通过“scanf”传递到我想要溢出的程…
使用系统调用写入 nasm 中的文件
作为作业的一部分,我应该使用系统调用写入文件。一切正常,除了当我尝试在 gedit (Linux) 中打开文件时。它说它无法识别字符编码。记事本(Windows …
在 nasm 中使用 printf 在同一行打印
我希望能够打印到同一行,同时在 nasm 程序集中多次调用 printf 。 例如: SEGMENT .text mov eax,5 push eax push format_num call printf add esp,8…
NASM - 使用位标志扩展标签
我需要设置一些标签地址/偏移量的最高位。 我尝试过: test.nasm: BITS 32 dw mylabel | 0x8000 mylabel: dd 0 但是当尝试组装这个时,我得到: nasm…