You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TASM汇编代码加载BMP图片报错且无法显示的问题求助

TASM汇编代码加载BMP图片报错且无法显示的问题求助

我从一本汇编书上抄了一段加载BMP图片的代码,自己把一张PNG转成了BMP格式,命名为doeshe.bmp。不管我把图片放在TASM文件夹根目录还是BIN子文件夹里,都看不到图片,反而会显示"Error"提示。

这是我用的代码:

IDEAL
MODEL small
STACK 100h
DATASEG
    filename db 'doeshe.bmp',0
    filehandle dw ?
    Header db 54 dup (0)
    Palette db 256*4 dup (0)
    ScrLine db 320 dup (0)
    ErrorMsg db 'Error', 13, 10 ,'$'
CODESEG
proc OpenFile
    mov ah, 3Dh
    xor al, al
    mov dx, offset filename
    int 21h
    jc openerror
    mov [filehandle], ax
    ret
    openerror :
    mov dx, offset ErrorMsg
    mov ah, 9h
    int 21h
    ret
endp OpenFile
proc ReadHeader
    mov ah,3fh
    mov bx, [filehandle]
    mov cx,54
    mov dx,offset Header
    int 21h
    ret
endp ReadHeader 
proc ReadPalette
    mov ah,3fh
    mov cx,400h
    mov dx,offset Palette
    int 21h
    ret
endp ReadPalette

proc CopyPal
    mov si,offset Palette
    mov cx,256
    mov dx,3C8h
    mov al,0
    out dx,al
    inc dx
    PalLoop:
        mov al,[si+2] 
        shr al,2 
        out dx,al 
        mov al,[si+1]
        shr al,2
        out dx,al
        mov al,[si]
        shr al,2
        out dx,al
        add si,4 
        loop PalLoop
    ret
endp CopyPal
proc CopyBitmap
    mov ax, 0A000h
    mov es, ax
    mov cx,200
    PrintBMPLoop :
        push cx
        mov di,cx
        shl cx,6
        shl di,8
        add di,cx
        mov ah,3fh
        mov cx,320
        mov dx,offset ScrLine
        int 21h
        cld 
        mov cx,320
        mov si,offset ScrLine
        rep movsb
        pop cx
        loop PrintBMPLoop
        ret
endp CopyBitmap
start :
    mov ax, @data
    mov ds, ax
    mov ax, 13h
    int 10h
    call OpenFile
    call ReadHeader
    call ReadPalette
    call CopyPal
    call CopyBitmap
    mov ah,1
    int 21h
    mov ah, 0
    mov al, 2
    int 10h
exit:
    mov ax, 4c00h
    int 21h
END start

我原本期望能看到自己转换的图片,但实际运行后只弹出了"Error"提示,完全看不到图像。有没有大佬能帮我找找问题出在哪?

备注:内容来源于stack exchange,提问作者mia herstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:59:48