org 0x8400
jmp start
bmphead equ 9000h
bmppal equ 9036h
bmpdata equ 9436h
width dw 320
height dw 200
total dw 64000
start:
mov ah,00h
mov al,13h
int 10h
mov ax, 0xa000
mov es,ax
mov ax, 0
mov ds, ax
call quse
call draw
jmp $
quse: ;取背景色0-255,256出循环
push dx
push bx
push ax
push di
push cx
mov si, 0
mov bl, 0
mov di, 0
mov cx, 0
quse_x1: ;排色
mov dx, 0x3c8
mov al, bl
out dx, al
mov dx, 0x3c9
mov al, [ds:bmppal+di + 2]
shr al, 2
out dx, al
mov al, [ds:bmppal+di + 1]
shr al, 2
out dx, al
mov al, [ds:bmppal+di]
shr al, 2
out dx, al
add di, 4
inc bl
inc cx
cmp cx, 256
jb quse_x1
pop cx
pop di
pop ax
pop bx
pop dx
ret
draw:
push ax
push bx
push cx
push dx
push di
push si
push bp
mov di,63684
mov bp,0x436
mov bx,0x900
mov ds,bx
mov bx,200
draw_x1:
mov cx,320
draw_x2:
mov al,[ds:bp]
mov [es:di],al
inc bp
inc di
loop draw_x2
sub di,640
dec bx
cmp bx,0
jnz draw_x1
pop bp
pop si
pop di
pop dx
pop cx
pop bx
pop ax
ret
汇编nasm插入图片
最新推荐文章于 2024-09-13 23:32:49 发布