第一个汇编语言程序 1.asm

本文档详细介绍了如何使用DOSBox环境编写、编译、链接及运行一个简单的汇编语言程序2.asm。通过notepad++创建源代码文件,使用debug.exe所在目录保存,并使用DOSBox内的nasm编译器生成.obj文件,再通过link工具链接成.exe可执行文件。过程中涉及的命令包括r、u、t和int21,可用于查看寄存器状态、指令和单步执行程序。
摘要由CSDN通过智能技术生成

1、编写程序:2.asm

可以用任意文本编辑器,推荐 notepad++,后缀名为 .asm 保存在 debug.exe 所在目录下(上文说到过的),这里写一个 2.asm。

在这里插入图片描述

assume cs:abc
abc segment
		mov ax, 0001
		add ax, ax
		add ax, ax
	
		mov ax, 4c00H
		int 21H
abc ends
end 

2、编译

进入 DOSBox 后,对 *.asm 文件进行编译,生成包含机器代码的目标文件( .obj 文件)

在这里插入图片描述
进行编译之后如果没有问题(我给的代码是没问题的),文件夹里就会多了一个 2.obj 文件

3、链接和运行程序

对 *.obj 目标文件进行连接,得到可执行文件(.exe文件)。运行link后,首先显示一些版本信息,然后提示输入将要被连接的目标文件的名称。注意,“[.OBJ]”提示我们,默认的文件扩展名是obj,**比如要连接的目标文件名是“xxx.obj”,只要在这里输入“xxx”即可。**可如果文件不是以 obj 为扩展名,就要输入它的全名。比如目标文件名为“ xxx.bin ”,就要输入全名。
不过我在两个黄标的地方加上了扩展名也没什么问题。其他输入全部忽略即可。

在这里插入图片描述
我们可以看到,最后提示 no stack segment,表示程序已经可以运行,并且没有栈段。

4、常用命令

程序执行前:

r 查看当前寄存器中的内容
u 查看其他指令
t 命令单步执行每条指令,并观察每条指令的执行结果
int21 必须要用 p 命令执行(最后一步)

第一次将 ip 设为0,u查看我们程序的命令

在这里插入图片描述
随后用 t 命令单步执行,可以随时看到我们运行的命令,和寄存器的变化。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值