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 指令毫无意义。
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 指令毫无意义。