Это мой код:
data segment
letter_a db ' __ _ ',10,13
db ' / _` | ',10,13
db '| (_| | ',10,13
db ' \__,_| ',10,13
db ' '
opening_end db 0
pointer db 10
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
call print_opening
; wait for any key....
mov ah, 1
int 21h
call print_opening
; wait for any key....
mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h
ends
proc print_opening
pusha
mov al, 1
mov bh, 0
mov bl, 3
; I calculate length
lea cx, opening_end
lea dx, letter_a
sub cx, dx
mov dh, 3 ; row
mov dl, [pointer] ; col
lea bp, letter_a
mov ah, 13h
int 10h
mov ah, 8
int 21h
add [pointer], 10
popa
ret
endp print_opening
end start
Проблема в том, что он только начинает первую строку строки в выбранном мной столбце, а затем возвращается к нулевому столбцу.Есть ли способ отступить всю строку, когда я захочу?
Я хочу иметь возможность изменить ее так, как я нахожусь в моем коде, а не просто установить отступ в сегменте данных.
Я действительно надеюсь, что этовозможно.Заранее спасибо!