- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
; NASM
push 30 ; '0'
mov rax, 4 ; write
mov rbx, 1 ; stdout
mov rcx, rsp ; ptr to character on stack
mov rdx, 1 ; length of string = 1
int 80h
上面的代码不会向标准输出输出任何内容。当我给它一个指向 section .data
中的字符的指针时,它就起作用了。我做错了什么?
这里是: .SECTION .data msg: .string "AAAA" .SECTION .text .globl _start _start: mov $1, %rax
我写了一个简单的 ASM 程序,但 sys_write 没有给出任何输出。我想我对指向 %ecx 的指针犯了一个错误,并且 sys_write 无法访问该字符串 - 但到目前为止我还没有发现我的错误。
以下代码: section .bss name: resb 50 section .text global _start _start:
我想了解 scsi 设备上的 sys_write 是如何工作的。因此我编写了一个简单的测试程序,并在设备驱动程序的issue函数中添加了一些调试printk()来打印ata_queued_cmd->s
我正在尝试使用 rdtsc 计算使用 sys_write 写入内容需要多少个周期。我能够测试 printf 和 scanf 函数。它们工作正常,但现在我遇到了系统调用问题。 在我看来,问题出在 %ea
这个问题在这里已经有了答案: What happens if you use the 32-bit int 0x80 Linux ABI in 64-bit code? (1 个回答) 关闭 4 年
我目前正在学习汇编,我需要一些关于这个简单程序的帮助。 say_something() 函数是由 x86_64 程序集(在 64 位 Linux 上使用 NASM)创建的,只是用来打印出短语和换行符。
我正在尝试使用 NASM 学习 MacOS 程序集,但我无法让一个简单的程序工作。我正在尝试“Hello, World”的变体,其中两个词由宏独立调用。我的源代码如下所示: %macro printS
我是这个论坛的新手。我对高级语言有一点经验(真的很少)。将近一个月前,我认为在 linux 上选择 nasm (IA-32) 后,我认为了解汇编的工作原理是个好主意,我开始从教程中学习。 现在,在结束
这个问题在这里已经有了答案: Why can't I sys_write from a pointer to stack memory, using int 0x80? [duplicate] (2
我是一名优秀的程序员,十分优秀!