emu8086 mistake:unknown 跳过操作码:65 不是 8086 指令

emu8086 mistake:unknown opcode skipped: 65 not 8086 instruction

org 200h

data segment



;upper_case

sA      db 'Alpha', 20h, '$' 
sB      db 'Bravo', 20h, '$'
sC      db 'Charlie', 20h, '$'
sD      db 'Delta', 20h, '$'
sE      db 'Echo', 20h, '$'
sF      db 'Foxtrot', 20h, '$'
G       db 'Golf', 20h, '$'
H       db 'Hotel', 20h, '$'
I       db 'India', 20h, '$'
J       db 'Juliet', 20h, '$'
K       db 'Kilo', 20h, '$'
L       db 'Lima', 20h, '$'
M       db 'Mike', 20h, '$'


;lower_case



;digits:

zero    db 'zero', 20h, '$' 
one     db 'one', 20h, '$'
two     db 'two', 20h, '$'
three   db 'three', 20h, '$'



lower dw la, lb, lc, ld, le, lf, lg, lh, li, lj, lk, ll, lm, ln, lo, lp ,lq, lr, ls, lt, lu, lv, lw, lx, ly, lz

upper dw sA,sB,sC,sD,sE,sF,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z

num dw zero, one, two, three, four, five, six, seven, eight, nine

myname    db  0dh, 0ah, 'name: Meng Zhao', 0dh, 0ah, '$'
myid      db  0dh, 0ah, 'ID:1300062809', 0dh, 0ah, '$'

  data ends

;stack segment stack
    ;sta db 50 dup(0)
    ;top equ length sta
;stack ends

code segment
......
disp_upper:
      ......
code ends

它编译正常,但是当我 运行 它时,跳过了 emu8086 says:unknown 操作码:65 不是 8086 指令 - 尚不支持。在 sE db 'Echo', 20h, '$'。我只是想知道为什么会发生这种情况?我已经尝试更改我的变量的名称,但它不起作用。

代码太长,无法粘贴。

在没有看到更多代码的情况下,我的最佳猜测是您正在执行 data。一切似乎都执行得很好,直到模拟器找到一个字符,该字符的 ASCII 代码不对应于 8086 cpu 上定义的任何操作码。

org 200h

这个组织看起来很奇怪。通常为了生成 .COM 可执行文件,我们编写 ORG 100h 并明确跳转到代码开始的位置(或在代码部分中失败)。您似乎在数据部分失败了。
如果您试图制作 .EXE 可执行文件,则 ORG 指令毫无意义。