如何在特定位置打印bmp

时间:2019-02-10 15:46:40

标签: assembly bmp emu8086

我正在尝试在特定位置打印10 * 10像素的小照片,但是我不知道该怎么做。我知道如何打印320 * 200的照片。

1 个答案:

答案 0 :(得分:2)

您可以使用嵌套循环进行此操作。外循环在y位置迭代,内循环在x位置迭代。

假设您要将10x10的照片放在(50,35)(左上角):

    mov si, ... ; Address of your photo data (256 colors)
    mov bh, 0   ; Display page
    mov dx, 35  ; Y
outerLoop:
    mov cx, 50  ; X
innerLoop:
    lodsb       ; Fetch pixel color from stored photo
    mov ah, 0Ch ; BIOS.WritePixel
    int 10h
    inc cx      ; Next X
    cmp cx, 50+10
    jb  innerLoop
    inc dx      ; Next Y
    cmp dx, 35+10
    jb  outerLoop