Я не могу написать текст на экран 13h в MS-DOS через .com/.exe файл, я должен я мог контролировать текст полностью. У меня FASM

Рейтинг: -2Ответов: 0Опубликовано: 10.08.2025
draw_string:
    push es
    pusha

    mov bx, SCREEN_WIDTH
    xchg ax, bx
    mul di
    add ax, dx
    mov di, ax
    mov ax, 0A000h
    mov es, ax

    mov ax, 1130h
    mov bh, 6
    int 10h
    mov bp, es
    mov es, bp
    
    mov bl, TEXT_COLOR
    
.next_char:
    lodsb
    test al, al
    jz .done

    cmp al, 32
    jb .skip_char
    cmp al, 126
    ja .skip_char

    push si
    mov ah, 0
    sub al, 32
    shl ax, 3
    mov si, ax
    add si, 0FA6Eh

    mov cx, 8
.draw_line:
    mov al, [es:si]
    inc si
    push di
    mov dh, 8
    
.draw_pixel:
    test al, 80h
    jz .skip_pixel
    mov [es:di], bl
    
.skip_pixel:
    shl al, 1
    inc di
    dec dh
    jnz .draw_pixel
    
    pop di
    add di, SCREEN_WIDTH
    loop .draw_line
    
    pop si
.skip_char:
    add dx, 8
    jmp .next_char
    
.done:
    popa
    pop es
    ret

Ответы

Ответов пока нет.