我有用于繪制 img 檔案的 8086 代碼。我可以在dosbox中使用它,但是在emu8086中運行時,我收到了這個錯誤
unknown opcode skipped:0F
not 8086 instruction - not supported yet.
運行 ret 命令后,readdata 函式出現此錯誤。我試圖了解導致此錯誤的原因,但我不能。我只是想知道我該如何解決它。
錯誤截圖
這是我試圖繪制的影像:drivelink
uj5u.com熱心網友回復:
...了解導致此錯誤的原因...
代碼段被資料覆寫,然后ret指令回傳到不再包含 emu8086 可以識別的有效指令的位置。
DS 段暫存器包含 0714h,并且保持 0715h,CS 段暫存器緊隨其后僅 16 個位元組。.Data 部分設定不正確。我懷疑里面的問號roseFilehandle DW ?是罪魁禍首!
根據emu8086分配給roseData緩沖區(8)的地址,我建議你重寫.Data部分,如:
.Data
roseWidth EQU 200
roseHeight EQU 195
roseFilename DB 'rose.img', 0
roseData DB roseWidth*roseHeight dup(0)
roseFilehandle DW 0
您可能還想將堆疊放大到更真實的大小:.Stack 256.
為了與現有 BIOS 實作最大兼容性,您不應使用 BX 回圈影像資料,而是使用 SI 并設定 BH=0 以選擇顯示頁面 0。
mov bh, 0
mov si, OFFSET roseData
drawLoop:
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/489741.html
