【问题标题】:dot 2 pixels together将 2 个像素点在一起
【发布时间】:2012-12-29 11:12:28
【问题描述】:

我在第一个像素的旁边点了一个像素,但结果不同。第二个像素离第一个像素很远。

怎么了?

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

谢谢!

【问题讨论】:

    标签: assembly graphics x86 dos framebuffer


    【解决方案1】:

    有两个错误。

    首先,8 位/像素的 BIOS 320x200 是视频模式 13h (19d),而不是像您一样的 13d

    修复它:

    mov ax,13h
    int 10h
    

    另一个错误是您将ax 而不是al 写入显存。将ax 替换为al 或任何其他8 位寄存器(ahblbhclchdldh):

    mov al,1
    mov [es:di],al
    inc di
    mov [es:di],al
    

    应该可以的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2021-08-14
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多