Получение относительного адреса по физическому - Assembler

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

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

Известна Формула вычисления физического адреса по сегменту и смещению: Физ_адр = (сегмент * 10h) + смещение Простите за дилетантский вопрос, а есть ли обратная формула (т.е вычисление относительного адреса по физическому)? Пытался сам её вывести - не получилось. Перерыл интернет - тоже ничего подобного не нашел...

Решение задачи: «Получение относительного адреса по физическому»

textual
Листинг программы
model   tiny
.code
org 100h
b:  xor ax,ax
    mov ds,ax
    mov ax,-1
    mov es,ax
    mov di,3357h
    mov si,3367h
    mov ax,ds:[di]
    mov bx,es:[si]
    push    cs
    pop ds
    lea dx,dbNo
    cmp ax,bx
    jnz @@01
    lea dx,dbYes
@@01:   mov ah,9
    int 21h
    ret
dbNo    db  'no$'
dbYes   db  'Yes$'
    end b

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

  1. Начальная инициализация: — Переменная ax инициализируется значением 0. — Переменная ds инициализируется значением 0. — Переменная es инициализируется значением 0. — Переменная di инициализируется значением 3357h. — Переменная si инициализируется значением 3367h.
  2. Загрузка сегмента данных и кода в регистры ds и ax соответственно.
  3. Загрузка адреса первой инструкции в переменную di.
  4. Загрузка адреса второй инструкции в переменную si.
  5. Загрузка значения из памяти по адресу, который находится в регистре di, в переменную ax.
  6. Загрузка значения из памяти по адресу, который находится в регистре si, в переменную bx.
  7. Сравнение значений переменных ax и bx.
  8. Если значения равны, то переход к следующей инструкции.
  9. Если значения не равны, то переход к инструкции с меткой @@01.
  10. Загрузка значения 'no$' в переменную dx.
  11. Вывод значения переменной dx на экран с помощью функции 9 и interrupt 21h.
  12. Возврат в основную программу.
  13. Если значения переменных ax и bx не равны, то переход к следующей инструкции.
  14. Загрузка значения 'Yes$' в переменную dx.
  15. Вывод значения переменной dx на экран с помощью функции 9 и interrupt 21h.
  16. Возврат в основную программу.

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


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

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

5   голосов , оценка 4.8 из 5
Похожие ответы