Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack 200h
- .data
- menu db '1. Create',13,10,
- db '2. Open',13,10,
- db '3. Exit',13,10,13,10
- db 'enter menu number $'
- puth db 'D:\asm_file.txt',0
- exp db 'example message$'
- .code
- begin:
- mov ax,@data
- mov ds,ax
- start_menu:
- xor ax,ax
- xor dx,dx
- ;Вывод на экран меню
- mov ah,9h
- mov dx,offset menu
- int 21h
- ;Выбор пункта меню
- mov ah,01h
- int 21h
- cmp al,31h
- je p_create
- cmp al,32h
- je p_open
- cmp al,33h
- je p_exit
- ;создание файла
- p_create:
- xor ax,ax
- mov ah,3Ch ; DOS функция создания файла
- mov cx,00100000b ; 2-ой отвечает за создание системного файла
- mov dx,offset puth
- int 21h
- push ax ; помещаю в стек идентификатор файла
- jmp start_menu
- ;Запись данных в файл
- p_open:
- xor ax,ax
- ;открываю файл на запись
- mov ah,3DH ; DOS функция открытия файла
- mov al,0100000b ; 1 бит отвечает за режим записи
- int 21h
- ;Записываю данные
- xor ax,ax
- mov ah,40h ;DOS функция записи в файл
- pop bx ;Достаю из стека идентификатор файла
- mov dx, offset exp
- mov cx, 17 ;длинна в байтах, записываемой строки
- int 21h
- ;закрываю файл
- mov ah,3Eh
- int 21h
- jmp start_menu
- ;Выход
- p_exit:
- ;зарытие файла
- mov ah,4Ch ;DOS функция закрытия файла (в bx лежит идентификатор файла)
- int 21h
Add Comment
Please, Sign In to add comment