Девушка просит помощи у мудрых программистов (ассемблер).... - Assembler
Формулировка задачи:
Добрый день! Не могли бы вы мне помочь.нужно написать две маленькие программки.достаточно только сегмент кода,наверное.
1. дан массив Х[-10...10] X dw 21 dup ?, а в регистре DI хранится число i. написать программу,которая бы выполняла действие X[i]:=X[0]+1.
2. в стеке хранится не менее двух слов.написать программу,удаляющую второе(сверху) слово,не меняя значения регистров.
всем,кто откликнется на мою просьбу,заранее спасибо.
Решение задачи: «Девушка просит помощи у мудрых программистов (ассемблер)....»
textual
Листинг программы
.286 .model tiny .code org 100h Main: push 27h push 11h ; Кладем в стек 2 слова push bp mov bp,sp push ax mov ax,[bp+2] mov [bp+4],ax ; Заменяем 2 слово первым pop ax pop bp add sp,02 ; Убивает первое слово int 20h End Main
Объяснение кода листинга программы
- Устанавливаем модель памяти 286.
- Устанавливаем сегмент кода 100h.
- Орг. точка 100h.
- Начало основной программы.
- Кладем в стек два слова (27h и 11h).
- Устанавливаем указатель стека в регистре BP.
- Кладем в стек регистр AX.
- Заменяем второе слово в стеке на значение регистра AX.
- Удаляем второе слово из стека.
- Увеличиваем указатель стека на 2.
- Вызываем BIOS-интерфейс прерывания 20h для завершения работы программы.
- Конец основной программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д