Напишите комментарии к программе - Assembler (223595)
Формулировка задачи:
Листинг программы
- .model small ;
- .data ;
- x dw 05 ;
- y dw 40 ;
- .stack ;
- .code ;
- begin: ;
- mov ax,@data ;
- mov ds,ax ;
- mov ax,x ;
- mov bx,y ;
- push ax ;
- push bx ;
- call prl ;
- pop bx ;
- pop ax ;
- jmp ml ;
- prl proc near ;
- sub ax,ax ;
- xor bx,bx ;
- ret ;
- prl endp ;
- ml:mov ax,4c00h ;
- int 21h ;
- end begin ;
Решение задачи: «Напишите комментарии к программе»
textual
Листинг программы
- .model small ;модель памяти
- .data ;начало сегмента данных программы
- x dw 05 ;объявляется переменная x размером слово и инициализируется значением 5
- y dw 40 ;объявляется переменная y размером слово и инициализируется значением 40
- .stack 100h ;установка размера стека
- .code ;начало сегмента кода программы
- begin: ;метка начала программы
- mov ax,@data ;пересылаем адрес сегмента данных в регистр ax
- mov ds,ax ;установка регистра ds на сегмент данных
- mov ax,x ;помещаем в регистр ax значение переменной x
- mov bx,y ;помещаем в регистр bx значение переменной y
- push ax ;толкаем в стек значение регистра ax
- push bx ;толкаем в стек значение регистра bx
- call prl ;вызываем процедуру prl
- pop bx ;выталкиваем значение с вершины стека в регистр bx
- pop ax ;выталкиваем значение с вершины стека в регистр ax
- jmp ml ;прыгаем на метку ml, обходя код процедуры
- prl proc near ;начало ближней процедуры prl
- sub ax,ax ;обнуление регистра ax с помощью вычитания значения регистра ax из самого себя
- xor bx,bx ;тоже обнуление. только регистра bx. и с помощью операции логического побитового или
- ret ;возврат из процедуры
- prl endp ;конец процедуры prl
- ml: ;метка ml
- mov ah,4Ch ;DOS функция выхода из программы
- mov al,00h ;код возврата
- int 21h ;прерывание, чтобы функция выполнилась
- end begin ;конец программы с точкой входа begin
Объяснение кода листинга программы
- Объявление переменных x и y размером слово (dw) и инициализация их значениями 5 и 40 соответственно.
- Установка размера стека в 100 байт (100h).
- Пересылка адреса сегмента данных в регистр ax и установка регистра ds на сегмент данных.
- Помещение значения переменной x в регистр ax и значение переменной y в регистр bx.
- Толчок значения регистра ax в стек.
- Толчок значения регистра bx в стек.
- Вызов процедуры prl.
- Выталкивание значения из стека в регистр bx.
- Выталкивание значения из стека в регистр ax.
- Прыжок на метку ml, обходя код процедуры.
- В процедуре prl обнуление регистра ax путем вычитания значения регистра ax из самого себя.
- Обнуление регистра bx с помощью операции логического побитового или.
- Возврат из процедуры prl.
- Конец процедуры prl.
- Выполнение DOS функции выхода из программы с кодом возврата 00h.
- Прерывание, чтобы функция выполнилась.
- Конец программы с точкой входа begin.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д