【EMU8086使用及8086指令系统】—— 微机原理实验

一、实验要求

  1. 熟悉并掌握EMU8086汇编语言编程调试环境;
  2. 学习8086寻址方式(立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址相对寻址、隐含寻址)。要求对以上寻址方式进行熟悉,观察不同寻址方式下指令运行结果(每种寻址方式2个实例,可参考PPT及教材相关章节);
  3. 学习8086指令系统,输入简单的指令(程序),观察各寄存器、内存相关单元以及处理器标志位的变化(数据传送类指令,算术运算类指令,逻辑运算类指令,标志处理和CPU控制类指令,移位和循环移位类指令,处理器控制类指令、程序控制类指令、输入/输出类指令等,要求每类指令至少2个用例。具体用例自行设计,可参考PPT及教材用例);
  4. 学习汇编语言程序设计的基本步骤和方法;
  5. 学会使用EMU8086 debug调试程序(单步运行、断点设置等);
  6. 学习汇编编程中DOS功能调用方法,掌握常用的DOS功能调用;
  7. 编写一个简单的程序:将“This is my first ASM program-姓名(汉语拼音各人的姓名)”放在DS=0700H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。

二、实验目的

  1. 学习EMU8086仿真开发环境的使用,理解和掌握汇编语言编程的基本步骤;
  2. 熟悉并掌握8086/8088指令系统及内部结构;
  3. 熟悉常用的DOS功能调用,掌握汇编语言编程的人机交互方法;
  4. 熟悉变量、常量及伪指令的使用;
  5. 熟悉内存单元的存储结构,字符串的处理以及简单的编程。

三、实验代码及实验结果

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

在这里插入图片描述

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指令系统以及如何用简单的汇编语言来编写一段简单的代码。通过一步步的调试运行,我知道了自己经常犯的错误和今后需要改进的地方,感觉本次实验对我意义很大。

  • 10
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值