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

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

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

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

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

textual
Листинг программы
STACK_SEG   SEGMENT  PARA STACK  'STACK' ;определяем стек программы, начало
DB 100 DUP (?)   ;объем стека
STACK_SEG ENDS   ;конец сегмента стека
DATA_SEG SEGMENT  ; начало сегмента данных 
HELLO DB "Hello world!!!$" ;строка 
DATA_SEG ENDS    ;конец сегмента данных
TEXT_SEG  SEGMENT PARA 'CODE'  ;определяем сегмент кода, начало
ASSUME CS:TEXT_SEG, SS:STACK_SEG, DS:DATA_SEG, ES:DATA_SEG ;сообщаем ассемблеру сегмент и ассоциацией имени, но определять в каком регистре сегмент данных например все равно придется
 
NEW_PROC  PROC NEAR  
BEG_:   
MOV AX, DATA_SEG ;настраиваем ax на сегмента данных , другими словами, 
MOV DS, AX       ;помещаем адрес сегмента данных из AX в DS для доступа к ним
LEA DX, HELLO  
MOV AH, 09h  
INT 2lh   
MOV AH, 4CH ;функция завершения программы и выход в дос
INT 21H ; exit to MS-DOS 
NEW_PROG ENDP 
TEXT_SEG  ENDS 
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