Комментарии к коду - Assembler (223974)

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

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

Прошу помощи в написании комментариев к двум программам, так как сам не могу разобраться:
Листинг программы
  1. STACK_SEG SEGMENT PARA STACK 'STACK'
  2. DB 100 DUP (?)
  3. STACK_SEG ENDS
  4. DATA_SEG SEGMENT
  5. HELLO DB "Hello world!!!$"
  6. DATA_SEG ENDS
  7. TEXT_SEG SEGMENT PARA 'CODE'
  8. ASSUME CS:TEXT_SEG, SS:STACK_SEG, DS:DATA_SEG, ES:DATA_SEG
  9. NEW_PROC PROC NEAR
  10. BEG_:
  11. MOV AX, DATA_SEG
  12. MOV DS, AX
  13. LEA DX, HELLO
  14. MOV AH, 09h
  15. INT 2lh
  16. MOV AH, 4CH
  17. INT 21H ; exit to MS-DOS
  18. NEW_PROG ENDP
  19. TEXT_SEG ENDS
  20. END BEG_
Листинг программы
  1. CODE_SEG SEGMENT
  2. ASSUME CS:CODE_SEG, DS:CODE_SEG, SS:CODE_SEG, ES:CODE_SEG
  3. ORG 100h
  4. START_:
  5. JMP BEG_
  6. HELLO DB " Здравствуй мир!!!!$"
  7. NEW_PROC PROC NEAR
  8. BEG_:
  9. LEA DX, HELLO
  10. MOV AH, 09h
  11. INT 2lh
  12. RET
  13. NEW_PROC ENDP
  14. CODE_SEG ENDS
  15. END START_

Решение задачи: «Комментарии к коду»

textual
Листинг программы
  1. STACK_SEG   SEGMENT  PARA STACK  'STACK' ;определяем стек программы, начало
  2. DB 100 DUP (?)   ;объем стека
  3. STACK_SEG ENDS   ;конец сегмента стека
  4. DATA_SEG SEGMENT  ; начало сегмента данных
  5. HELLO DB "Hello world!!!$" ;строка
  6. DATA_SEG ENDS    ;конец сегмента данных
  7. TEXT_SEG  SEGMENT PARA 'CODE'  ;определяем сегмент кода, начало
  8. ASSUME CS:TEXT_SEG, SS:STACK_SEG, DS:DATA_SEG, ES:DATA_SEG ;сообщаем ассемблеру сегмент и ассоциацией имени, но определять в каком регистре сегмент данных например все равно придется
  9.  
  10. NEW_PROC  PROC NEAR  
  11. BEG_:  
  12. MOV AX, DATA_SEG ;настраиваем ax на сегмента данных , другими словами,
  13. MOV DS, AX       ;помещаем адрес сегмента данных из AX в DS для доступа к ним
  14. LEA DX, HELLO  
  15. MOV AH, 09h  
  16. INT 2lh  
  17. MOV AH, 4CH ;функция завершения программы и выход в дос
  18. INT 21H ; exit to MS-DOS
  19. NEW_PROG ENDP
  20. TEXT_SEG  ENDS
  21. END  BEG_

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

  1. Определяем стек программы, начало
  2. Определяем сегмент данных, начало
  3. Создаем строку Hello world!!!$ в сегменте данных
  4. Определяем сегмент кода, начало
  5. Сообщаем ассемблеру сегменты и ассоциацию имен
  6. Определяем процедуру, начало которой будет находиться по адресу BEG_
  7. Настраиваем AX на сегмент данных
  8. Помещаем адрес сегмента данных из AX в DS для доступа к ним
  9. Определяем адрес строки Hello world!!!$ в DX
  10. Запускаем функцию вывода строки на экран с использованием регистра AH
  11. Вызываем функцию завершения программы и выхода в DOS
  12. Запускаем процедуру, которая будет выполняться по адресу BEG_

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


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

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

8   голосов , оценка 3.875 из 5

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

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

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