私のアプリは動作していませんでした。保存オプションを選択すると停止しました。バグはどこですか?
[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 を書き込む必要がありますが、常に停止します。os.Thanksでこれを試しました。