【浅尝辄止】《汇编语言》第一个程序的编程、编译、连接和跟踪

本文记录了作者学习汇编语言的初步过程,包括使用masm5.0进行编辑,通过Overlay Linker3.60进行连接,以及如何简化编译和连接步骤。虽然hello.exe程序未显示任何运行结果,但作者通过Debug工具进行了程序的运行跟踪,了解了DOS系统下程序加载和执行的流程。
摘要由CSDN通过智能技术生成


前言

参考书籍:
王爽。汇编语言。北京:清华大学出版社, 2013:83-91

本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。


编辑

assume cs:codeseg

codeseg segment
	mov ax, 2000H
	mov ss, ax
	mov sp, 0
	add sp, 10

	pop ax
	pop bx
	push ax
	push ax
	pop ax
	pop bx

	mov ax, 4c00H
	int 21H
codeseg ends

end

使用文本编辑器编写,保存为 hello.asm 文件

编译

使用汇编编译器,如微软的 masm5.0 汇编编译器。
masm 汇编编译器
运行 masm 后,输入将要编译的源程序文件的名称(默认后缀名.ASM)(其余默认回车即可)。

连接

使用连接器,如微软的 Overlay Linker3.60 连接器
link
运行 link 后,输入将要连接的目标文件的名称(默认后缀名.OBJ)(其余默认回车即可)。

简化编译和连接过程

命令的结尾加上分号,将在当前路径下生成相关文件,并在编译/连接过程中自动忽略中间文件的生成。

  • masm (文件路径)文件名;
    在这里插入图片描述
  • link (文件路径)文件名;
    在这里插入图片描述

运行

在这里插入图片描述
hello.exe 程序仅仅做了一些数据操作,并没有想显示器输出任何信息,所以看不到任何运行结果。

DOS 系统下 .EXE 文件中的程序加载过程

  • 找到一段起始地址为 SA:0000 的容量足够的空闲内存区
  • 在这段内存前 256 个字节中,创建一个称为程序段前缀(PSP)的数据区
  • 在 PSP 之后装入程序,程序地址被设为 SA + 10H:0

汇编程序从写出到执行的过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值