


这个程序编译的时候没有报错,到proteus仿真后一直提示未知的两字节操作码分解,实在是不知道什么原因



关注引自免费微信小程序:皆我百晓生
根据您提供的信息,您的问题是关于在Proteus中仿真8086汇编程序时遇到的问题。错误消息显示“Unknown 2-byte opcode at CDICD:CDCD (extra part is decomposed)! FF07”。这通常表示在汇编代码中有不被支持的双字节指令或者数据。
首先,让我们检查一下汇编代码中的可能错误。从您提供的代码片段来看,所有的指令看起来都是正确的,但是有些地方可以优化。例如,您可以将一些重复的操作合并,简化代码。下面是经过优化的代码:
; DATA SEGMENT
TIMES 80H DB 0 ; Reserve 128 bytes starting at 0x0800 for TIMEO and TIME1
CONTROL EQU 86H
DATA ENDS
; CODE SEGMENT
ASSUME DS:DATA, CS:CODE
START:
MOV AX, DATA
MOV DS, AX
; Set up time output
MOV AL, 32H
OUT CONTROL, AL
MOV AX, 20000
OUT TIMEO, AL
MOV AL, AH
OUT TIMEO, AL
; Set up control register
MOV AL, 72H
OUT CONTROL, AL
MOV AX, 30000
OUT TIME1, AL
MOV AL, AH
OUT TIME1, AL
; Main loop
LOOP:
NOP
JMP LOOP ; Infinite loop
CODE ENDS
END START
接下来,请按照以下步骤操作来解决这个问题:
Intel 8086。EMU8086。如果问题仍然存在,建议您提供完整的项目文件,以便我可以更深入地分析和找出问题所在。同时,如果问题与硬件配置相关,也请提供电路原理图以供参考。