Proteus 仿真8086时 汇编程序里面有DATA SEGMENT时 CS 在load时会偏移的问题
2013-10-30 12:40
363 查看
Proteus 仿真8086时 汇编程序里面有DATA SEGMENT时 CS 在load时会偏移的问题
对于 类似于把 DATA SEGMENT写CODE外面时
DATA SEGMENT
OUTBUFF DB 2,0,1,3
;显示值
LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;0~9 段码表
DATA ENDs
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
…………
CODE ENDS
END START
Proteus 利用这种汇编程序进行仿真时,会把CS的地址进行偏移。这样就不能正确的调试的执行我们的程序。出现的状况如下图:
图1:我们设置的8086 的Program Loading Segment 是0x8000
0001
虽然是我们设置的8086 的Program Loading Segment 是0x8000,但是执行类似上面的汇编程序在调试时会出现偏移的状况
如图:
0002
可以看出CS:0801啦,而执行时也从8010开始执行啦。这样就执行不出我想要结果。
解决办法:将DATA SEGMENT 段放入CODE段里就行了。
如:
CODE SEGMENT
DATA SEGMENT
OUTBUFF DB 2,0,1,3
;显示值
LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;0~9 段码表
DATA ENDS
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
…………
CODE ENDS
END START
Proteus 利用这种汇编程序进行仿真时,就不会把CS的地址进行偏移了。
如图:0003
对于 类似于把 DATA SEGMENT写CODE外面时
DATA SEGMENT
OUTBUFF DB 2,0,1,3
;显示值
LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;0~9 段码表
DATA ENDs
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
…………
CODE ENDS
END START
Proteus 利用这种汇编程序进行仿真时,会把CS的地址进行偏移。这样就不能正确的调试的执行我们的程序。出现的状况如下图:
图1:我们设置的8086 的Program Loading Segment 是0x8000
0001
虽然是我们设置的8086 的Program Loading Segment 是0x8000,但是执行类似上面的汇编程序在调试时会出现偏移的状况
如图:
0002
可以看出CS:0801啦,而执行时也从8010开始执行啦。这样就执行不出我想要结果。
解决办法:将DATA SEGMENT 段放入CODE段里就行了。
如:
CODE SEGMENT
DATA SEGMENT
OUTBUFF DB 2,0,1,3
;显示值
LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;0~9 段码表
DATA ENDS
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
…………
CODE ENDS
END START
Proteus 利用这种汇编程序进行仿真时,就不会把CS的地址进行偏移了。
如图:0003
相关文章推荐
- 8086汇编语言自学经验分享 汇编程序初始时CS与DS的关系
- 几个2410引导程序里面的 汇编语法问题
- 带强名的.net程序反向工程后汇编中的问题总结
- 8086汇编程序暂停的实现方法
- 在汇编程序中获得命令行参数(已经解决了以前遇到的问题)
- 1、基于 ATMEGA-16 的 GPIO 小灯程序与 Proteus 仿真
- 关于在IIS服务器上运行asp.net Web程序出现下面 “Could not load file or assembly。。。”问题的
- 8086汇编学习笔记3-程序组织
- 8086 汇编小程序
- 编译iOS程序时的-all_load选项,以及-all_load 导致的 ld duplicate symbol xx的问题
- ASP.NET一般处理程序(.ashx.cs)中使用Session的问题
- proteus仿真常见问题
- 微信小程序HotApp云笔记开发问题总结 之textarea不能实时保存及里面的值的获取的问题?
- 在Keil里面仿真stm32程序出现Communication failure错误
- Linux里面的gcc编译程序游离问题
- proteus仿真出了点小问题
- 解决win7系统不支持16位实模式汇编程序DOS运行的问题
- 8086汇编语言自学经验分享 T命令执行CS:IP所指内存的指令
- 解决Android客户端运行Cococs2dx编写的游戏程序遇到的意外游戏中断导致的游戏黑屏问题
- VS2008编译汇编程序的问题