一、实验要求
- 熟悉并掌握EMU8086汇编语言编程调试环境;
- 学习8086寻址方式(立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址)。要求对以上寻址方式进行熟悉,观察不同寻址方式下指令运行结果(每种寻址方式2个实例,可参考PPT及教材相关章节);
- 学习8086指令系统,输入简单的指令(程序),观察各寄存器、内存相关单元以及处理器标志位的变化(数据传送类指令,算术运算类指令,逻辑运算类指令,标志处理和CPU控制类指令,移位和循环移位类指令,处理器控制类指令、程序控制类指令、输入/输出类指令等,要求每类指令至少2个用例。具体用例自行设计,可参考PPT及教材用例);
- 学习汇编语言程序设计的基本步骤和方法;
- 学会使用EMU8086 debug调试程序(单步运行、断点设置等);
- 学习汇编编程中DOS功能调用方法,掌握常用的DOS功能调用;
- 编写一个简单的程序:将“This is my first ASM program-姓名(汉语拼音各人的姓名)”放在DS=0700H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。
二、实验目的
- 学习EMU8086仿真开发环境的使用,理解和掌握汇编语言编程的基本步骤;
- 熟悉并掌握8086/8088指令系统及内部结构;
- 熟悉常用的DOS功能调用,掌握汇编语言编程的人机交互方法;
- 熟悉变量、常量及伪指令的使用;
- 熟悉内存单元的存储结构,字符串的处理以及简单的编程。
三、实验代码及实验结果
1. 寻址方式:立即寻址
MOV AL,06H
MOV DX,7000H
2. 寻址方式:直接寻址
MOV AX,[2000H]
MOV BX,CS:[1000H]
3. 寻址方式:寄存器寻址
MOV AX,06H;MOV DS,AX
MOV BL,01H;MOV DL,BL
4. 寻址方式:寄存器间接寻址
MOV AX,[BX]
MOV DX,[BP]
5. 寻址方式:寄存器相对寻址
MOV AL,[SI+2]
MOV AX,[BX+4]
6. 寻址方式:基址变址寻址
MOV AX,[BX][SI]
MOV AX,[BP][DI]
7. 寻址方式:基址变址相对寻址
MOV AX, [BX][SI]+2
MOV AX,[BX][SI]+4
8. 指令系统:数据传送指令
LDS SI,[BX]
MOV AX,4000H;
MOV SS,AX;
MOV SP,2000H;
MOV DX,2C5EH;
PUSH DX;
PUSH AX;
9. 指令系统:算术运算指令
ADD AX,5000H
MOV AX,2000;
MOV BL,120;
DIV BL
10. 指令系统:逻辑运算指令
AND AL,0FCH
XOR AL,0FH
11. 指令系统:移位和循环移位类指令
MOV AL,05H;
SAL AL,1
MOV AL,12;
SAR AL,2
12. 指令系统:处理器控制指令
MOV AX,05FH;
MOV BX,03EH;
HLT;
ADD AX,BX
MOV AX,4000H;
MOV SS,AX;
MOV SP,2000H;
HLT;
MOV DX,2C5EH;
PUSH DX;
PUSH AX;
13. 指令系统:输入/输出类指令
MOV DX,03FH;
IN AL,DX
MOV AX,1000H;
OUT 55H,AX
文章来源:https://www.toymoban.com/news/detail-425581.html
14. 综合
MOV AX, 0700H
MOV DS, AX
MOV BX,0000H
MOV [02H], 'T'
MOV [04H], 'h'
MOV [06H], 'i'
MOV [08H], 's'
MOV [0AH], ' '
MOV [0CH], 'i'
MOV [0EH], 's'
MOV [10H], ' '
MOV [12H], 'm'
MOV [14H], 'y'
MOV [16H], ' '
MOV [18H], 'f'
MOV [1AH], 'i'
MOV [1CH], 'r'
MOV [1EH], 's'
MOV [20H], 't'
MOV [22H], ' '
MOV [24H], 'A'
MOV [26H], 'S'
MOV [28H], 'M'
MOV [2AH], ' '
MOV [2CH], 'p'
MOV [2EH], 'r'
MOV [30H], 'o'
MOV [32H], 'g'
MOV [34H], 'r'
MOV [36H], 'a'
MOV [38H], 'm'
MOV [3AH], '-'
MOV [3CH], 'Y'
MOV [3EH], 'a'
MOV [40H], 'n'
MOV [42H], 'g'
MOV [44H], 'S'
MOV [46H], 'a'
MOV [48H], 'i'
MOV [4AH], 'l'
MOV [4CH], 'i'
MOV [4EH], 'n'
MOV [50H], 'g'
MOV CX,0028H
MOV BX,0100H
MOV SI,0002H
COPY:
MOV AX,DS:[SI]
MOV DS:[BX+SI],AX
ADD SI,2
LOOP COPY
MOV BX,0102H
MOV CX,0028H
PRINTF:
MOV DL,[BX]
MOV AH,02H
INT 21H
ADD BX,2
LOOP PRINTF
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
RET
四、实验总结
这是微机系统综合实验的第一次试验,通过在emu8086上的模拟,我对8086汇编语言有了一定的了解,并且学会了各种寻址方式的基本用法和原理,8086指令系统以及如何用简单的汇编语言来编写一段简单的代码。通过一步步的调试运行,我知道了自己经常犯的错误和今后需要改进的地方,感觉本次实验对我意义很大。文章来源地址https://www.toymoban.com/news/detail-425581.html
到了这里,关于EMU8086使用及8086指令系统(微机原理实验)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!