我在第一个像素的右侧点了一个像素,但结果不同。第二个像素距离第一个像素很远。
出了什么问题?
org 100h
;change to 320x200 graphic mode
mov ax, 13
int 10h
;frame buffer location
push 0xa000
pop es
xor di, di
;dot 2 pixels
mov ax, 1
mov [es:di], ax
inc di
mov [es:di], ax
;prevent ending
a:
jmp a
谢谢!
最佳答案
有两个错误。
首先,8 位/像素的 BIOS 320x200 是视频模式 13h
(19d
),而不是您所拥有的 13d
。
修复它:
mov ax,13h
int 10h
另一个错误是您将 ax
而不是 al
写入视频内存。将 ax
替换为 al
或任何其他 8 位寄存器(ah
、bl
、bh
、cl
、ch
、dl
、dh
):
mov al,1
mov [es:di],al
inc di
mov [es:di],al
应该可以了。
关于assembly - 将 2 个像素点在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081088/