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
虽然

在Proteus中仿真8086汇编程序,当DATA SEGMENT位于CODE段外时,会导致CS寄存器加载时偏移,影响程序正确执行。解决方法是将DATA SEGMENT放入CODE段内,以避免CS地址偏移,确保程序按预期运行。
最低0.47元/天 解锁文章
1634





