Комментарии к коду - 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_
Объяснение кода листинга программы
- Определяем стек программы, начало
- Определяем сегмент данных, начало
- Создаем строку
Hello world!!!$
в сегменте данных - Определяем сегмент кода, начало
- Сообщаем ассемблеру сегменты и ассоциацию имен
- Определяем процедуру, начало которой будет находиться по адресу BEG_
- Настраиваем AX на сегмент данных
- Помещаем адрес сегмента данных из AX в DS для доступа к ним
- Определяем адрес строки
Hello world!!!$
в DX - Запускаем функцию вывода строки на экран с использованием регистра AH
- Вызываем функцию завершения программы и выхода в DOS
- Запускаем процедуру, которая будет выполняться по адресу BEG_
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д