汇编-准备工作

参考书籍和博客

《深入理解程序设计--使用linux汇编语言》

linux平台学x86汇编

编译环境

因为是x86的汇编,直接使用x64的系统编译会有问题,我这里使用docker来作为编译环境

使用alpine x86版本的镜像,Dockerfile文件内容如下:

FROM m0elnx/alpine-x86

# 安装编译命令 as 和 ld。gdb可以用来调试
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk update && \
    apk add --no-cache binutils-libs binutils gdb vim sudo && \
    rm /usr/bin/vi && ln -s /usr/bin/vim /usr/bin/vi

RUN addgroup -g 1000 asm && \
    adduser -h /home/asm -G asm -D -u 1000 asm && \
    echo 'asm ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers

USER asm
WORKDIR /home/asm

# 设置vim自动缩进等功能
COPY --chown=asm:asm .vimrc /home/asm/.vimrc

CMD /bin/sh

运行程序的脚本

每次编译运行都是一个繁杂的过程,可以使用一段脚本来完成。

使用 test.s 命名源文件,然后运行这个脚本,就可以看到返回结果了

#!/bin/sh

# -gstabls 打开调试
as -gstabls test.s -o tmp.o
ld tmp.o -o a.out
./a.out
echo $?
posted @ 2020-08-07 16:14  二狗啸地  阅读(116)  评论(0)    收藏  举报