Guest User

Untitled

a guest
Aug 17th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 200h
  3. .data
  4.     menu    db '1. Create',13,10,
  5.             db '2. Open',13,10,
  6.         db '3. Exit',13,10,13,10
  7.             db 'enter menu number $'
  8.     puth        db 'D:\asm_file.txt',0
  9.     exp         db 'example message$'
  10. .code
  11. begin:
  12.     mov ax,@data
  13.     mov ds,ax
  14. start_menu:
  15.     xor ax,ax
  16.     xor dx,dx
  17.     ;Вывод на экран меню
  18.     mov ah,9h
  19.     mov dx,offset menu
  20.     int 21h
  21.     ;Выбор пункта меню
  22.     mov ah,01h
  23.     int 21h
  24.     cmp al,31h
  25.     je p_create
  26.     cmp al,32h
  27.     je p_open
  28.     cmp al,33h
  29.     je p_exit
  30. ;создание файла
  31. p_create:
  32.         xor ax,ax
  33.     mov ah,3Ch       ; DOS функция создания файла
  34.     mov cx,00100000b ; 2-ой отвечает за создание системного файла
  35.     mov dx,offset puth
  36.     int 21h
  37.     push ax          ; помещаю в стек идентификатор файла
  38.     jmp start_menu
  39. ;Запись данных в файл
  40. p_open:
  41.         xor ax,ax
  42.     ;открываю файл на запись
  43.     mov ah,3DH      ; DOS функция открытия файла
  44.     mov al,0100000b ; 1 бит отвечает за режим записи
  45.     int 21h
  46.     ;Записываю данные
  47.     xor ax,ax
  48.     mov ah,40h      ;DOS функция записи в файл
  49.     pop bx          ;Достаю из стека идентификатор файла
  50.     mov dx, offset exp
  51.     mov cx, 17      ;длинна в байтах, записываемой строки
  52.     int 21h
  53.     ;закрываю файл
  54.     mov ah,3Eh
  55.     int 21h
  56.     jmp start_menu
  57. ;Выход
  58. p_exit:
  59.     ;зарытие файла
  60.     mov  ah,4Ch      ;DOS функция закрытия файла (в bx лежит идентификатор файла)
  61.     int  21h
Add Comment
Please, Sign In to add comment