我想繪制 200x200 大小的圖片,我使用 emu8086 將像素坐標提取到螢屏上。我將坐標傳輸到陣列并列印到螢屏上,但我無法列印整個陣列。當我檢查狀態時,我注意到整個陣列沒有被記住。我該如何解決這個問題,或者有其他方法嗎?這是我的專案所需的結構。
我的 ASM 代碼
.stack 512
.MODEL small
DTSEG SEGMENT
DATA_IN DB 0Eh,0Fh,010h,011h,012h,013h,014h,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,013h,014h,015h,016h,017h,018h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,032h,033h,034h,035h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,013h,014h,015h,016h,017h,018h,019h,1Ah,025h,026h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,032h,033h,034h,035h,036h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,013h,014h,015h,016h,017h,018h,019h,1Ah,01Bh,024h,025h,026h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,032h,033h,034h,035h,036h,037h,038h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,013h,014h,015h,016h,017h,018h,019h,1Ah,01Bh,01Ch,023h,024h,025h,026h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,032h,033h,034h,035h,036h,037h,038h,039h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,016h,017h,018h,019h,1Ah,01Bh,01Ch,01Dh,022h,023h,024h,025h,026h,027h,028h,029h,032h,033h,034h,035h,036h,037h,038h,039h,03Ah,04h,05h,06h,07h,08h,09h,0Ah,0Bh,018h,019h,1Ah,01Bh,01Ch,01Dh,01Eh,021h,022h,023h,024h,025h,026h,027h,034h,035h,036h,037h,038h,039h,03Ah,03Bh,03h,04h,05h,06h,07h,08h,09h,019h,1Ah,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,025h,026h,036h,037h,038h,039h,03Ah,03Bh,03Ch,02h,03h,04h,05h,06h,07h,08h,1Ah,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,025h,037h,038h,039h,03Ah,03Bh,03Ch,03Dh,02h,03h,04h,05h,06h,07h,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,038h,039h,03Ah,03Bh,03Ch,03Dh,01h,02h,03h,04h,05h,06h,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,01h,02h,03h,04h,05h,06h,01Dh,01Eh,01Fh,020h,021h,022h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,01h,02h,03h,04h,05h,01Eh,01Fh,020h,021h,03Ah,03Bh,03Ch,03Dh,03Eh,00h,01h,02h,03h,04h,05h,01Fh,020h,03Ah,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,00h,01h,02h,03h,04h,03Bh,03Ch,03Dh,03Eh,03Fh,01h,02h,03h,04h,05h,03Ah,03Bh,03Ch,03Dh,03Eh,01h,02h,03h,04h,05h,03Ah,03Bh,03Ch,03Dh,03Eh,01h,02h,03h,04h,05h,06h,039h,03Ah,03Bh,03Ch,03Dh,03Eh,02h,03h,04h,05h,06h,07h,038h,039h,03Ah,03Bh,03Ch,03Dh,02h,03h,04h,05h,06h,07h,038h,039h,03Ah,03Bh,03Ch,03Dh,03h,04h,05h,06h,07h,08h,037h,038h,039h,03Ah,03Bh,03Ch,04h,05h,06h,07h,08h,09h,036h,037h,038h,039h,03Ah,03Bh,04h,05h,06h,07h,08h,09h,0Ah,035h,036h,037h,038h,039h,03Ah,03Bh,05h,06h,07h,08h,09h,0Ah,0Bh,034h,035h,036h,037h,038h,039h,03Ah,06h,07h,08h,09h,0Ah,0Bh,0Ch,033h,034h,035h,036h,037h,038h,039h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,032h,033h,034h,035h,036h,037h,038h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,031h,032h,033h,034h,035h,036h,037h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,030h,031h,032h,033h,034h,035h,036h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,02Fh,030h,031h,032h,033h,034h,035h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,02Eh,02Fh,030h,031h,032h,033h,034h,035h,0Bh,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,02Dh,02Eh,02Fh,030h,031h,032h,033h,034h,0Ch,0Dh,0Eh,0Fh,010h,011h,012h,013h,02Ch,02Dh,02Eh,02Fh,030h,031h,032h,033h,0Eh,0Fh,010h,011h,012h,013h,014h,02Bh,02Ch,02Dh,02Eh,02Fh,030h,031h,0Fh,010h,011h,012h,013h,014h,015h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,030h,010h,011h,012h,013h,014h,015h,016h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,02Fh,011h,012h,013h,014h,015h,016h,017h,018h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,02Eh,012h,013h,014h,015h,016h,017h,018h,019h,026h,027h,028h,029h,02Ah,02Bh,02Ch,02Dh,013h,014h,015h,016h,017h,018h,019h,1Ah,025h,026h,027h,028h,029h,02Ah,02Bh,02Ch,014h,015h,016h,017h,018h,019h,1Ah,01Bh,024h,025h,026h,027h,028h,029h,02Ah,02Bh,016h,017h,018h,019h,1Ah,01Bh,01Ch,023h,024h,025h,026h,027h,028h,029h,017h,018h,019h,1Ah,01Bh,01Ch,01Dh,022h,023h,024h,025h,026h,027h,028h,018h,019h,1Ah,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,025h,026h,027h,019h,1Ah,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,025h,026h,01Ah,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,025h,01Bh,01Ch,01Dh,01Eh,01Fh,020h,021h,022h,023h,024h,01Dh,01Eh,01Fh,020h,021h,022h,01Eh,01Fh,020h,021h
DATA_OUT DB 03h,03h,03h,03h,03h,03h,03h,03h,03h,03h,03h,03h,03h,03h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,04h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,05h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,06h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,07h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,08h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,09h,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Ah,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Bh,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Ch,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Dh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Eh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,0Fh,010h,010h,010h,010h,010h,010h,010h,010h,010h,010h,010h,010h,010h,010h,011h,011h,011h,011h,011h,011h,011h,011h,011h,011h,012h,012h,012h,012h,012h,012h,012h,012h,012h,012h,013h,013h,013h,013h,013h,013h,013h,013h,013h,013h,014h,014h,014h,014h,014h,014h,014h,014h,015h,015h,015h,015h,015h,015h,015h,015h,016h,016h,016h,016h,016h,016h,016h,016h,017h,017h,017h,017h,017h,017h,017h,017h,018h,018h,018h,018h,018h,018h,018h,018h,019h,019h,019h,019h,019h,019h,019h,019h,019h,019h,1Ah,1Ah,1Ah,1Ah,1Ah,1Ah,1Ah,1Ah,1Ah,1Ah,01Bh,01Bh,01Bh,01Bh,01Bh,01Bh,01Bh,01Bh,01Bh,01Bh,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Ch,01Dh,01Dh,01Dh,01Dh,01Dh,01Dh,01Dh,01Dh,01Dh,01Dh,01Eh,01Eh,01Eh,01Eh,01Eh,01Eh,01Eh,01Eh,01Eh,01Eh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,01Fh,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,020h,021h,021h,021h,021h,021h,021h,021h,021h,021h,021h,021h,021h,022h,022h,022h,022h,022h,022h,022h,022h,022h,022h,022h,022h,023h,023h,023h,023h,023h,023h,023h,023h,023h,023h,023h,023h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,024h,025h,025h,025h,025h,025h,025h,025h,025h,025h,025h,025h,025h,025h,025h,026h,026h,026h,026h,026h,026h,026h,026h,026h,026h,026h,026h,026h,026h,027h,027h,027h,027h,027h,027h,027h,027h,027h,027h,027h,027h,027h,027h,028h,028h,028h,028h,028h,028h,028h,028h,028h,028h,028h,028h,028h,028h,029h,029h,029h,029h,029h,029h,029h,029h,029h,029h,029h,029h,029h,029h,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Ah,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Bh,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Ch,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Dh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Eh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,02Fh,030h,030h,030h,030h,030h,030h,030h,030h,030h,030h,030h,030h,030h,030h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,031h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,032h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,033h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,034h,035h,035h,035h,035h,035h,035h,035h,035h,035h,035h,035h,035h,035h,035h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,037h,038h,038h,038h,038h,038h,038h,038h,038h,038h,038h,038h,038h,038h,038h,039h,039h,039h,039h,039h,039h,039h,039h,039h,039h,039h,039h,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Ch,03Ch,03Ch,03Ch
DTSEG ENDS
.CODE
screen macro
mov ah,00
mov al,13h
int 10h
endm
clear_screen macro
mov ax,600h
mov bh,07h
mov cx,0
mov bx,184fh
int 10h
endm
MAIN PROC FAR
ASSUME DS:DTSEG
MOV AX,DTSEG
MOV DS,AX
MOV AX,0xA000
MOV ES,AX
MOV BX,OFFSET DATA_IN
MOV SI,OFFSET DATA_OUT
PUSH BX
screen
POP BX
MOV CX,906
DNG:
PUSH CX
XOR CX,CX
mov cx,[BX]
XOR CH,CH
xor dx,dx
mov dx,[SI]
xor dh,dh
PUSH BX
xor bx,bx
mov bh,0h ;sayfa sayisi
POP BX
mov ah,0ch
mov al,06
int 10h
INC SI
INC BX
POP CX
LOOP DNG
INT 21H
MAIN ENDP
END MAIN
; add your code here
ret
我在這里嘗試了陣列中的 64x64 影像,結果是一樣的。等待你的幫助
uj5u.com熱心網友回復:
看到MOV CX,906,我猜,這就是你可以在db一行中填充的所有內容。就像@ecm 在她的評論中告訴你的那樣,你應該把資料寫在多db行上,最好讓數字對齊(為了你自己的觀看樂趣):
X db 0Eh, 0Fh,010h,011h,012h,013h,014h,02Bh
db 02Ch,02Dh,02Eh,02Fh,030h,031h, 0Ah, 0Bh
db 0Ch, 0Dh, 0Eh, 0Fh,010h,011h,012h,013h
db 014h,015h,016h,017h,018h,027h,028h,029h
db ...
Y db 03h,03h,03h,03h,03h,03h,03h,03h
db 03h,03h,03h,03h,03h,03h,04h,04h
db 04h,04h,04h,04h,04h,04h,04h,04h
db 04h,04h,04h,04h,04h,04h,04h,04h
db ...
因為您的DATA_IN和DATA_OUT陣列實際上是 X 和 Y 坐標,為什么不更恰當地命名它們X和Y呢?
代碼還有一些問題:
在clear_screen宏中,
mov bx,184fh指令在兩個方面是錯誤的。LowerRightCorner 必須進去,DX對于 320x200 256 色螢屏(13h),列數是 40,因此 4Fh 不是正確的值。使用mov dx, 1827h.因為您在
mov bh,0h ;sayfa sayisi后面寫了POP BX,所以您不會在 BH 中設定 DisplayPage。下面的
INT 21H指令在 AH 中缺少其功能編號。可能你的意思是mov ax, 4C00hint 21h。
快速修復,這樣您就可以看到還有哪些改進可能!
...
MOV AX, DTSEG
MOV DS, AX
screen
MOV si, OFFSET X
MOV di, OFFSET Y
mov bh, 0 ;sayfa sayisi
MOV CX, 906
DNG:
PUSH CX
XOR CX, CX
mov cl, [si]
xor dx, dx
mov dl, [di]
mov ah, 0Ch
mov al, 6 ; Brown
int 10h
INC si
INC di
POP CX
LOOP DNG
mov ax, 4C00h
INT 21h
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/486321.html
上一篇:第二扇區無法加載到引導檔案中
