目录
一、实验要求二、实验目的三、实验代码及实验结果1. 寻址方式:立即寻址2. 寻址方式:直接寻址3. 寻址方式:寄存器寻址4. 寻址方式:寄存器间接寻址5. 寻址方式:寄存器相对寻址6. 寻址方式:基址变址寻址7. 寻址方式:基址变址相对寻址8. 指令系统:数据传送指令9. 指令系统:算术运算指令10. 指令系统:逻辑运算指令11. 指令系统:移位和循环移位类指令12. 指令系统:处理器控制指令13. 指令系统:输入/输出类指令14. 综合
四、实验总结
一、实验要求
熟悉并掌握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
![在这里插入图片描述](https://img-blog.csdnimg.cn/5d30f4cc90f94fa6b625d1b9b4706933.png)
MOV DX,7000H
![在这里插入图片描述](https://img-blog.csdnimg.cn/50f86bdeb6d04daf968b2af4e5770ab2.png)
2. 寻址方式:直接寻址
MOV AX,[2000H]
![在这里插入图片描述](https://img-blog.csdnimg.cn/19d64a8c96f240aeb268108052a806c5.png)
MOV BX,CS:[1000H]
![在这里插入图片描述](https://img-blog.csdnimg.cn/daa79063b5844cd3bb73964cc24a030a.png)
3. 寻址方式:寄存器寻址
MOV AX,06H;MOV DS,AX
![在这里插入图片描述](https://img-blog.csdnimg.cn/85b797f5ea704e208078c414714c1512.png)
MOV BL,01H;MOV DL,BL
![在这里插入图片描述](https://img-blog.csdnimg.cn/fa0933f072b0407691eb131dbabccec0.png)
4. 寻址方式:寄存器间接寻址
MOV AX,[BX]
![在这里插入图片描述](https://img-blog.csdnimg.cn/dcaca7e65687433984b16a2a2dd2fd99.png)
MOV DX,[BP]
![在这里插入图片描述](https://img-blog.csdnimg.cn/062500607c614b32af08eb70edf075ba.png)
5. 寻址方式:寄存器相对寻址
MOV AL,[SI+2]
![在这里插入图片描述](https://img-blog.csdnimg.cn/d52376fc510f4a3c82279945f6313d9c.png)
MOV AX,[BX+4]
![在这里插入图片描述](https://img-blog.csdnimg.cn/1a8a76a1be314408aebf68b8f1924bc5.png)
6. 寻址方式:基址变址寻址
MOV AX,[BX][SI]
![在这里插入图片描述](https://img-blog.csdnimg.cn/a062676282604cad82624f378a6cd01f.png)
MOV AX,[BP][DI]
![在这里插入图片描述](https://img-blog.csdnimg.cn/aecce41e7e5e4884b2e315bdc602202c.png)
7. 寻址方式:基址变址相对寻址
MOV AX, [BX][SI]+2
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad71b867c6e842fcb1e48c87f9f7b26a.png)
MOV AX,[BX][SI]+4
![在这里插入图片描述](https://img-blog.csdnimg.cn/d527be3603184721aebb90c66adf4b4f.png)
8. 指令系统:数据传送指令
LDS SI,[BX]
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8f3a00d46aa476ebea75102fcfa2249.png)
MOV AX,4000H;
MOV SS,AX;
MOV SP,2000H;
MOV DX,2C5EH;
PUSH DX;
PUSH AX;
![在这里插入图片描述](https://img-blog.csdnimg.cn/231d0edf88d7422589ab21e236f3540a.png)
9. 指令系统:算术运算指令
ADD AX,5000H
![在这里插入图片描述](https://img-blog.csdnimg.cn/f7e30530b2c543e490ed1b08c31441a7.png)
MOV AX,2000;
MOV BL,120;
DIV BL
![在这里插入图片描述](https://img-blog.csdnimg.cn/a2581714d6514407b1831a423ae2128f.png)
10. 指令系统:逻辑运算指令
AND AL,0FCH
![在这里插入图片描述](https://img-blog.csdnimg.cn/8a21f63b613049ca9b5ab0f6b19e738e.png)
XOR AL,0FH
![在这里插入图片描述](https://img-blog.csdnimg.cn/99240d50aab94ce2a16f3c5eb25e3486.png)
11. 指令系统:移位和循环移位类指令
MOV AL,05H;
SAL AL,1
![在这里插入图片描述](https://img-blog.csdnimg.cn/271ace92aa1a47c3b0e7ec2f950ea42d.png)
MOV AL,12;
SAR AL,2
![在这里插入图片描述](https://img-blog.csdnimg.cn/1f058af24da54d4a95b361d93e9df4aa.png)
12. 指令系统:处理器控制指令
MOV AX,05FH;
MOV BX,03EH;
HLT;
ADD AX,BX
![在这里插入图片描述](https://img-blog.csdnimg.cn/fddb1563e89e4bc3b55196b779abfe0a.png)
MOV AX,4000H;
MOV SS,AX;
MOV SP,2000H;
HLT;
MOV DX,2C5EH;
PUSH DX;
PUSH AX;
![在这里插入图片描述](https://img-blog.csdnimg.cn/89b092f1b36b4a7e9f1bed2bcc7c174d.png)
13. 指令系统:输入/输出类指令
MOV DX,03FH;
IN AL,DX
![在这里插入图片描述](https://img-blog.csdnimg.cn/5c2d11bb4ab54abaaf9f664f7826fc38.png)
MOV AX,1000H;
OUT 55H,AX
![在这里插入图片描述](https://img-blog.csdnimg.cn/787286cb8b7f4dc1b676654c97dd411e.png)
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指令系统以及如何用简单的汇编语言来编写一段简单的代码。通过一步步的调试运行,我知道了自己经常犯的错误和今后需要改进的地方,感觉本次实验对我意义很大。
|