我的应用程序不起作用,当保存选项选择时,它停止了。错误在哪里?
[bits 16]
[org 0x7d00]
;Start
start:
mov ah,00
mov al,03h
int 10h
mov ax,0a00h
mov es,ax
keys:
mov ax,10h
int 16h
cmp al,'1'
je new
cmp al,'2'
je load
jmp keys
new:
mov cx,1
mov dx,1
int 10h
mov ax,0013h
int 10h
.key:
pusha ;save regs
mov ax,10h
int 16h
cmp al,' '
je .draw_pix
cmp al,'w'
je .up
cmp al,'s'
je .down
cmp al,'a'
je .left
cmp al,'d'
je .right
cmp al,'q'
je start
cmp al,'e'
je save
cmp al,'c'
je clear
cmp al,'r'
je load
cmp al,'p'
je save
jmp .key
;---------------------
.draw_pix :
popa
mov ah,0x0C
int 10h
jmp .key
;---------------------
.up:
popa
dec dx
jmp .key
;---------------------
.down:
popa
inc dx
jmp .key
;---------------------
.left:
popa
dec cx
jmp .key
;---------------------
.right:
popa
inc cx
jmp .key
;---------------------
.inccolor:
popa
inc al
jmp .key
;---------------------
.deccolor:
popa
dec al
jmp .key
;---------------------
load:
;....
clear:
mov ax,0013h
int 10h
jmp keys
save:
mov cx,0
mov dx,0
.read:
add [Buffer],cx
add [Buffer],dx
add [Buffer],al
mov ah,0x0D
int 10h
.getx:
cmp cx,319
je .gety
inc cx
jmp .read
.gety:
cmp dx,199
je start
inc dx
mov cx,0
jmp .read
exit:
ret
Buffer times 512 dw 0
我无法理解为什么这会停止?保存功能 必须读取像素并写入缓冲区:X,Y,Color 但它总是会停止。我在我的操作系统中试过这个。谢谢。