汇编工具理解

当百度读取键盘敲入字符等得到的代码,譬如如下

bash 复制代码
section .data
    input_buffer db 1   ; 保存输入字符的变量
 
section .text
global _start
 
_start:
    mov eax, 3          ; 设置文件描述符为0 (stdin)
    xor ebx, ebx        ; 清空ebx寄存器
    mov edx, 1          ; 要读取的字节数
    lea ecx, [input_buffer]     ; 目标地址
    int 0x80            ; 调用系统调用
 
    cmp al, -1          ; 判断是否成功读取了字符
    jz exit             ; 如果返回值为-1则表示没有更多字符可供读取,结束程序
 
    ; 这里可以对读取到的字符进行处理
    ; ...
 
exit:
    mov eax, 1          ; 设置系统调用号为1 (exit)
    xor ebx, ebx        ; 清空ebx寄存器
    int 0x80            ; 调用系统调用

as 不支持其语法

bash 复制代码
as -32 3.s -o 3.o

nasm可支持

bash 复制代码
nasm -f elf32 -o 3.o 3.s

但ld时无法链接到C库函数

bash 复制代码
ld -m elf_i386 -o 3 3.o -lc -verbose

gcc 编一个32位程序也会因为stdio.h内部缺失导致编译失败

ld可链接32位程序可运行,前提不引用其他

编译64位及链接方法

bash 复制代码
as -g -o scastest.o scastest.s

ld -o scastest scastest.o -lc -I /lib64/ld-linux-x86-64.so.2

参考

第25部分- Linux x86 64位汇编 字符串扫描 | 码农家园

相关推荐
水饺编程3 小时前
第1章:开发环境搭建,在 Windows 中安装 QEMU
c语言·汇编
AC赳赳老秦4 小时前
OpenClaw 数据引用规范自动生成:为公开数据构建可信来源标注与标准引用体系
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
AC赳赳老秦1 天前
数据采集全链路审计留痕:用 OpenClaw 实现合规审计与追溯
开发语言·汇编·python·php·swift·deepseek·openclaw
小雪崩3 天前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
额额额对了3 天前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
AOI小白新手上路3 天前
4-3_ARM汇编_学习笔记
汇编·arm开发·学习
AC赳赳老秦4 天前
公开音频转写信息提取:OpenClaw 处理发布会与听证会文本并提取核心决策信息
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
AC赳赳老秦4 天前
财报附注表格精准提取:OpenClaw 从 PDF 年报附注挖掘隐藏明细,补齐财务分析维度
java·汇编·c++·python·青少年编程·deepseek·openclaw
AC赳赳老秦5 天前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
斑马13913 天前
ARM学习笔记(二)——ARM汇编基础
汇编·arm开发·arm