当前位置:首页 >> 跨学科知识体系 >> 【proteus】8086 写一个汇编程序并调试,日本动漫新番

【proteus】8086 写一个汇编程序并调试,日本动漫新番

cpugpu芯片开发光刻机 跨学科知识体系 3
文件名:【proteus】8086 写一个汇编程序并调试,日本动漫新番 【proteus】8086 写一个汇编程序并调试

参考书籍:微机原理与接口技术——基于8086和Proteus仿真(第3版)p103-105,p119-122.

参考程序是p70,例4-1

在上一篇的基础上: 

创建项目和汇编文件

写一个汇编程序并编译

 双击8086的元件图:

可以修改size 

比如这里修改成:

在asm中写一个简单的汇编程序:

DATA SEGMENT;定义数据段X DW 2010H ;定义被加数Y DW 2011H;定义加数RESULT DW ? ;分配和数存放单元;数据段定义结束DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXJMP $CODE ENDSEND START

编译:

 编译通过:

 调试:

选中内存和寄存器窗口(第一个和第二个):

 F11单步调试:

发现上述代码进入调试状态后会变成这样:

 

停止调试,把CODE段写在前面(注意end start仍然写在最后):

CODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AXMOV AX,XADD AX,YMOV RESULT,AXJMP $CODE ENDSDATA SEGMENT;定义数据段X DW 2010H ;定义被加数Y DW 2011H;定义加数RESULT DW ? ;分配和数存放单元;数据段定义结束DATA ENDS END START

进入 调试:

 第二个按钮也可以实现单步调试:

单击一次该按钮后观察寄存器和内存:

 

 观察到内存发现数据段的首地址是0020,而AX被赋值为0002。(因为地址=段首址*10H+偏移地址,偏移地址由于是从0000开始,所以是正确的)

 继续单击:

 

 

 此时执行到这条语句:

先看一下result的内存内容(图的右侧),发现我们用?预留的空间并不是我们预料的是个随机数,而是00 00

 

继续调试:

可看出:低字节送入低地址,高字节送入高地址

jmp $ 构成无条件循环,可以保证仿真持续进行。$表示当前地址。

设置断点

双击某一行左侧:

重新进入调试状态点击第一个按钮:

 程序在断点处停止:

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接