📄 coa.asm
字号:
;********************************
stack segment
dw 100h dup (?)
stack ends
;**********************************
data segment
filename db 'a:dh64.dsb',0
filename1 db 'a:dh22.dsb',0
filename2 db 'a:dh23.dsb',0
handle dw ?
handle1 dw ?
handle2 dw ?
count db ?
count1 db ?
buff db 0fedeh dup (?)
data ends
;***********************************
code segment
assume cs:code ,ss:stack,ds:data
main proc far
mov ax,data
mov ds,ax
mov es,ax
mov dx,offset filename1
mov ah,3dh
mov al,02h
int 21h
jnc t0
jmp exit
t0: mov handle1,ax
mov dx ,offset filename
mov ah,3ch
mov cx,0
int 21h
jnc t2
jmp exit
t2: mov handle,ax
t7: mov count,0
mov dx,offset buff
mov ah,3fh
mov bx,handle1
mov cx,0fedeh
int 21h
jnc t1
jmp exit
t1: push ax
sub ax,3
add dx,ax
mov bx,dx
mov al,[bx]
cmp al ,0f8h
je t5
mov count,1
jmp t6
t5: pop ax
mov byte ptr [bx],0e0h
mov byte ptr [bx+1], 0
mov byte ptr [bx+2], 0
push ax
t6:
mov dx,offset buff
mov ah,40h
pop cx
mov bx,handle
int 21h
jnc t4
jmp exit
t4: cmp count,1
je t7
mov dx,offset filename2
mov ah,3dh
mov al,02h
int 21h
mov handle2,ax
p1: mov ah,3fh
mov dx,offset buff
mov bx,handle2
mov cx,0f000h
int 21h
jnc t3
jmp exit
t3: push ax
sub ax,3
add dx,ax
mov bx,dx
mov dx,offset buff
mov al, [bx]
cmp al ,0f8h
jne p3
cmp count1,1
jne t8
mov count1,0
jmp p2
p3: mov count1,1
t8: pop ax
sub ax,200h
push ax
t9: add dx,200h
p2:
mov ah,40h
mov bx,handle
pop cx
int 21h
cmp count1,1
je p1
exit: mov ax,4c00h
int 21h
retf
main endp
;*****************************
code ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -