Приветствую всех. Если требуется вариант как приведённые выше, то что-то вроде этого: | Код | dseg segment prog db "dseg segment", 0Dh, 0Ah db "prog db 'And here again the whole program?!', 24h", 0Dh, 0Ah db "dseg ends", 0Dh, 0Ah db "cseg segment", 0Dh, 0Ah db " assume cs:cseg, ds:dseg, ss:sseg", 0Dh, 0Ah db "@: mov ax, dseg", 0Dh, 0Ah db " mov ds, ax", 0Dh, 0Ah db " mov ah, 09h", 0Dh, 0Ah db " lea dx, prog", 0Dh, 0Ah db " int 21h", 0Dh, 0Ah db " mov ax, 4C00h", 0Dh, 0Ah db " int 21h", 0Dh, 0Ah db "cseg ends", 0Dh, 0Ah db "sseg segment stack", 0Dh, 0Ah db " db 0400h dup (?)", 0Dh, 0Ah db "sseg ends", 0Dh, 0Ah db " end @", 0Dh, 0Ah, 24h dseg ends cseg segment assume cs:cseg, ds:dseg, ss:sseg @: mov ax, dseg mov ds, ax mov ah, 09h lea dx, prog int 21h mov ax, 4C00h int 21h cseg ends sseg segment stack db 0400h dup (?) sseg ends end @
|
Но имхо лучше | Код | dseg segment prog db 'prog.asm', 0 buf db ? dseg ends cseg segment assume cs:cseg, ss:sseg, ds:dseg @: mov ax, dseg mov ds, ax lea dx, prog mov ax, 3D00h int 21h jc @quit mov bx, ax mov cx, 0001h @1: lea dx, buf mov ah, 3Fh int 21h test ax, ax jz @quit mov dl, buf mov ah, 02h int 21h jmp short @1 @quit: mov ax, 4C00h int 21h cseg ends sseg segment stack db 0400h dup (?) sseg ends end @
|
|