Запись в файл пяти строк, введенных с клавиатуры - Assembler

Узнай цену своей работы

Формулировка задачи:

напишите пожалуйста программу))я не силен в ассемблере так как изучал другой язык но сменился препод и внезапно нам дали ассемблер)) до этого изучал с_шарп Дан пустой текстовый файл 123.txt, записать в него пять строк введенных с клавиатуры. заранее спасибо.

Решение задачи: «Запись в файл пяти строк, введенных с клавиатуры»

textual
Листинг программы
  1. .model small
  2. .386
  3.  
  4. .stack 100h
  5.  
  6. .data
  7. filename db '123.txt',0
  8. handle dw ?
  9. buf db 100,0,100 dup(0)
  10. msg1 db 'file wasn"t opened!!!$'
  11. msg2 db 'writing fail$'
  12.  
  13. .code
  14. start:
  15. mov ax,@data
  16. mov ds,ax
  17.  
  18. mov ah,3Dh
  19. mov al,1
  20. lea dx,filename
  21. int 21h
  22. jc open_error
  23.  
  24. mov handle,ax
  25.  
  26. mov cx,5
  27. getstring:
  28. push cx
  29.  
  30. mov ah,0Ah
  31. lea dx,buf
  32. int 21h
  33.  
  34. mov ah,02h
  35. mov dl,0Ah
  36. int 21h
  37.  
  38. mov ah,02h
  39. mov dl,0Dh
  40. int 21h
  41.  
  42. xor bh,bh
  43. mov bl,buf+1
  44. mov cx,bx
  45. add cx,2
  46. mov byte ptr [buf+3+bx],0Ah
  47.  
  48. mov ah,40h
  49. mov bx,handle
  50. lea dx,buf+2
  51. int 21h
  52. jc write_error
  53.  
  54. pop cx
  55. loop getstring
  56.  
  57. jmp exit
  58.  
  59. open_error:
  60. mov ah,09h
  61. lea dx,msg1
  62. int 21h
  63.  
  64. jmp exit
  65.  
  66. write_error:
  67. mov ah,09h
  68. lea dx,msg2
  69. int 21h
  70.  
  71. exit:
  72. mov ah,4Ch
  73. mov al,00h
  74. int 21h
  75. end start

Объяснение кода листинга программы

  1. Установка начального сегмента данных на сегмент стека.
  2. Объявление переменных:
    • filename - строка, содержащая имя файла для открытия, максимальная длина 100 символов.
    • handle - целочисленная переменная, в которую будет записан дескриптор файла.
    • buf - буфер, в который будут записываться строки.
    • msg1 - сообщение об ошибке, если файл не был открыт.
    • msg2 - сообщение об ошибке, если произошла ошибка записи.
  3. Код обработки ошибок открытия файла и записи в файл.
  4. Начало цикла записи строк в файл. Цикл выполняется 5 раз.
  5. В каждой итерации цикла считывается строка с клавиатуры, записывается в буфер и записывается в файл.
  6. После окончания цикла выполняется завершающая операция записи в файл.
  7. Если произошла ошибка при открытии файла или записи в файл, выводится соответствующее сообщение об ошибке.
  8. Код выхода из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы