DOSBox配置8086CPU汇编语言开发环境
汇编语言开发环境
学习8086CPU汇编语言需要在32位系统DOS环境中进行调试,目前的操作系统一般都是64位且升级到Windows10,最近我也在无数次系统提醒之下按下了Window11更新,这些都无法启动debug.exe。
因此,我们可以使用DOSBox工具,可以在多种操作系统中支持DOS环境,首先下载好DOSBox和debug.exe,我将这两个可执行文件放到桌面文件夹asm中。
双击DOSBox安装包,一路下一步流畅无脑安装。然后双击启动:
挂载目录:
然而,每次启动都要执行命令,比较麻烦,可以直接找到下面文件:
文件位置(需要设置显示隐藏文件):
C:\Users\Cat\AppData\Local\DOSBox\C:\Users\Cat\AppData\Local\DOSBox
在最后面加上指令:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c: c:/Users/Cat/Desktop/asm
c:
调整界面大小:
# windowresolution=original
# output=surface
windowresolution=1080x800
output=opengl
入栈出栈
编程:
- 将1000H~1000FH这段空间当作栈,初始状态栈是空的;
- 设置AX=001AH,BX=001BH;
- 将AX、BX中的数据入栈;
- 然后将AX、BX清零;
- 从栈中恢复AX、BX原来内容。
栈交换数据
编程:
- 将1000H~1000FH这段空间当作栈,初始状态栈是空的;
- 设置AX=001AH,BX=001BH;
- 利用栈,交换AX和BX中的数据。
……
pop ax
pop bx
栈写入数据
在10000H处写入字型数据2266H,可以使用如下程序实现:
下面,要求不使用mov 内存单元,寄存器指令实现此功能。
思考,利用入栈操作,设置栈段和栈顶指针再将数据入栈。
DOSBox运行asm文件
将masm.exe和link.exe放入asm文件夹,并创建t.asm文件,写入程序:
如果觉得编译链接过程比较繁琐,可以在配置文件中直接写好,每次执行文件重启DOSBox就可以,可以把DOSBox固定到桌面下方任务栏,文件名指定,比如t.asm,需要测试其他文件就要将新的程序复制过来。
内存数据累加
计算ffff:0~ffff:b单元中的数据的和,结果存储在dx中。
注意:
1.单元中数据为8位,不能直接累加到16位寄存器中;
2.可以使用一个16位寄存器做中介,将内存单元中的8位数据赋值到一个16位寄存器ax中,再累加到dx上。
assume cs:codesg
codesg segment
start:mov ax,0ffffH
mov ds,ax
mov bx,0
mov dx,0
mov cx,12
s:mov al,[bx]
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00H
int 21H
codesg ends
end start
测试时使用4个单元数据累加,用计算器进行验证,最终DX寄存器中的数值也是1BCH。
视频讲解
视频加载中...
请先 后发表评论~