DATA SEGMENT
path db "result.txt",0 ; имя файла для октрытия
buf db ?
DATA ENDS
SSEG SEGMENT STACK
db 200 dup(?)
SSEG ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:SSEG
begin:
mov ax,DATA ; настроим DS
mov DS,ax ; на реальный сегмент
;открываем файл
mov ax,3d00h ; открываем для чтения
lea dx,path ; DS:dx указатель на имя файла
int 21h ; в ax деcкриптор файла
jc exit ; если поднят флаг С, то ошибка открытия
mov bx,ax ; копируем в bx указатель файла
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h ; идем к началу файла
out_str:
mov ah,3fh ; будем читать из файла
mov cx,1 ; 1 байт
lea dx,buf ; в память buf
int 21h
cmp ax,cx ; если достигнуть EoF или ошибка чтения
jnz close ; то закрываем файл закрываем файл
mov dl,buf
mov ah,2 ; выводим символ в dl
int 21h ; на стандартное устройство вывода
jmp out_str
close: ; закрываем файл, после чтения
mov ah,3e
int 21h
exit: ; завершаем программу
mov ah,4ch
int 21h
CODE ENDS
end begin
Погогите, please!
Помогите написать прогу на чистом ассемблере (чтоб не нужно было компилятора тип. fasm,masm,tasm,...) под дос, какая будет читать какою-то файл.
В машинных кодах чтоли? :))
либо в debug-е...
нет, по нормальному, тип. mov... int.. ну как положено, только под дос
язык ассемблера, которому необходим один из компиляторов *asm для того чтобы текст преобразовать в машинный код, который и будет уже являтся программой.
Вот пример(нагуглен):
prohramist, mov int и т.д. это
Вот пример(нагуглен):
Код:
Можно набивать код в debug. Когда то давно так делал, когда совсем простой код.