Девушка просит помощи у мудрых программистов (ассемблер).... - 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

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

  1. Устанавливаем модель памяти 286.
  2. Устанавливаем сегмент кода 100h.
  3. Орг. точка 100h.
  4. Начало основной программы.
  5. Кладем в стек два слова (27h и 11h).
  6. Устанавливаем указатель стека в регистре BP.
  7. Кладем в стек регистр AX.
  8. Заменяем второе слово в стеке на значение регистра AX.
  9. Удаляем второе слово из стека.
  10. Увеличиваем указатель стека на 2.
  11. Вызываем BIOS-интерфейс прерывания 20h для завершения работы программы.
  12. Конец основной программы.

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


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

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

6   голосов , оценка 3.833 из 5