微机原理与接口技术——Proteus仿真软件的使用方法

(一) 操作练习

  1. 编写实验程序,将00H-0FH共16个数写入内存3000H开始的连续16个存储单元中。

原理图:
在这里插入图片描述
代码:

CODE SEGMENT 'CODE'
     ASSUME CS:CODE
 START: XOR AX,AX
        MOV DS,AX
        MOV SI,3000H
        MOV CX,16
        MOV  AL,0
 AA1: MOV [SI],AL
        INC AL
	    INC SI
	    DEC CX
	    JNE AA1
	    JMP $
CODE ENDS
        END START	

仿真运行结果:
【Register】命令下单步调试:

XOR AX,AX
MOV DS,AX
MOV SI,3000H
MOV CX,16
MOV  AL,0

将AX寄存器内容清零,将AX的0值赋值给DS,将3000H地址存储单元赋值给SI,令计数器CX值为16,重复16次循环,令AL寄存器值为0,从0值开始赋值

AA1: MOV [SI],AL
INC AL
INC SI
DEC CX
JNE AA1
JMP $

第一次循环将AL的0值赋值给SI后将AL自增变成01H;将SI自增变成用于下一次循环的地址3001H,将计数器CX自减一,JNE AA1,当循环未结束ZF=0,一直进入AA1循环体执行

在这里插入图片描述
【Memory Dump】命令下单步调试:
在这里插入图片描述

  1. 编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。单步运行程序,观察8086内部寄存器的数值变化。

原理图:
在这里插入图片描述
程序:

CODE SEGMENT 'CODE'
     ASSUME CS:CODE
START: 
	 MOV SI,3500H
	 MOV DI,3600H
	 MOV CX,8
AA1:      
	 MOV AL,[SI]
	 MOV [DI],AL
         INC SI
	 DEC CX
	 JNE AA1
	  JMP $
CODE ENDS
        END START	

运行结果截图:

START: 
	 MOV SI,3500H   将地址3500H赋值给SI寄存器,源变址寄存器
	 MOV DI,3600H   将地址3600H赋值给SI寄存器,目的寄存器
	 MOV CX,8    计数器8
AA1:       循环体
	 MOV AL,[SI]    将地址3500H的数据赋值给AL寄存器
	 MOV [DI],AL 将从3500H地址获得的数据从AL赋值给地址3600H地址单元
	 INC DI      目的寄存器自增
INC SI        源变址寄存器自增
	 DEC CX      计数器减一
	 JNE AA1     检查ZF不等于0,一直执行至循环结束
	  JMP $

在这里插入图片描述

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值