Как скомпилировать .asm файл в .COM если он компилируется в .EXE?

Я новичок в ассемблере, и хочу так редактировать код чтобы всместо .EXE он компилировался в .COM (исполняемый для DOS-а). Компилируется в TASM.

код:

        int 21h

    mov ah,3Eh          
    int 21h         ; close file, bx=file handle

    pop si
    pop dx
    pop ds
    pop di
    pop cx
    pop bx
    pop ax

    
    jmp real21

put_eof:    mov     ax,4202h
    xor dx,dx
    xor cx,cx
    int     21h
    ret


int1Cnew:   

    push    ax
    inc     byte ptr cs:[counter]
    mov     al,30h
    cmp     byte ptr cs:[counter],al
    jz  scan
    pop     ax


slut:       jmp     dword ptr cs:[int1Cret]

scan:       
    push    bx
    push    cx
    push    di
    push    ds
    push    dx
    push    es
    push    si


    push    cs
    pop     ds

    cld
    xor     bx,bx
    mov     byte ptr cs:[counter],bh
    mov     cx,0FA0h

    mov     ax,0b800h
    mov     es,ax
    xor     di,di

again:      mov     al,byte ptr cs:[text+bx]
    sub al,80h
    repnz   scasb   
    jnz     stick

maybe:      inc     di
    inc     bx
    cmp     bx,10d
    jz  beep

    mov al,byte ptr cs:[text+bx]
    sub al,80h
    scasb
    jz  maybe
    xor bx,bx
    jmp again

beep:       
    xor cx,cx
    mov bx,word ptr cs:[int1Cret]
    mov es,word ptr cs:[int1Cret+2]
    mov ax,251Ch
    int 21h

overagain:  mov dx,0180h
    xor bx,bx

reset:      mov ah,00h
    inc bx
    cmp bl,5h
    jz  raise       
    inc cx
    int 13h

hoho:       mov ax,0380h
    inc cx
    int 13h
    jc  reset
    jmp     hoho        

raise:      xor cx,cx
    xor bx,bx
    inc dx
    cmp dl,85h
    jnz hoho
    jmp overagain   
                
stick:
    pop si      
    pop es
    pop dx
    pop     ds
    pop     di
    pop     cx
    pop     bx      
    pop     ax


    jmp     slut


counter:    db  00h

text:       db  'T'+80h, 'O'+80h, 'R'+80h, 'M'+80h, 'E'+80h, 'N'+80h
    db  'T'+80h, 'O'+80h, 'R'+80h, '!'+80h

        ; This is what it scans the screen for --^

int1Cret:   db  0EAh, 00h, 00h, 00h, 00h

code_end:                   ; THE END.

code        ends
end     codebeg

Ответы (0 шт):