С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
aleksgolovnya
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 2
1

Найти абсолютный адрес байта

30.10.2017, 11:56. Просмотров 335. Ответов 7
Метки нет (Все метки)

Даны команды:
1. mov dx, 40h
2. add ax, bx
3. mov al, [si]

Для каждой нужно найти абсолютный адрес байта. Как это можно сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2017, 11:56
Ответы с готовыми решениями:

Абсолютный адрес байта
Помогите пожалуйста определить абсолютный адрес байта. Задача была такая...

Абсолютный ассемблер. Вычисление факториала
Добрый вечер, помогите пожалуйста написать программу для вычисления факториала...

Найти строку и определить адрес
Помогите плз с лабой: Сразу, после запуска программы, до установки DS на свой...

Если [911A]=51, то переслать поле длины 87(дес) с адреса 777 на адрес 321A иначе на адрес 421A
Если =51, то переслать поле длины 87(дес) с адреса 777 на адрес 321A иначе на...

Найти адрес используя косвенную адресацию
Приведите пример нахождения адреса через базу и индексирование, желательно с...

7
Jin X
4636 / 1391 / 162
Регистрация: 14.12.2014
Сообщений: 2,687
Записей в блоге: 8
Завершенные тесты: 2
30.10.2017, 12:15 2
Адрес есть только в 3-й строке. Он будет = содержимому si.
0
Constantin Cat
2377 / 1073 / 368
Регистрация: 28.02.2015
Сообщений: 2,378
Завершенные тесты: 1
30.10.2017, 15:59 3
Цитата Сообщение от Jin X Посмотреть сообщение
Адрес есть только в 3-й строке.
В первой тоже может быть адрес, к примеру в сегменте данных выводимая строка начинается с DS : 40h
0
proc3nt
волшебник
652 / 512 / 153
Регистрация: 26.05.2012
Сообщений: 1,439
30.10.2017, 17:04 4
Цитата Сообщение от Constantin Cat Посмотреть сообщение
тоже может быть адрес
Цитата Сообщение от Constantin Cat Посмотреть сообщение
строка начинается с DS : 40h
а еще после векторов прерываний идет область BIOS.. эта область данных начинается с адреса 0040:0000h..
0
ФедосеевПавел
Модератор
3860 / 2180 / 895
Регистрация: 01.02.2015
Сообщений: 7,263
30.10.2017, 17:35 5
Возможно, само условие задания сильно сокращено.

Не по теме:

Так недавно отвечал на вопрос по обработки строки на асме, а выяснилось, что нужна раздельная компиляция в QuickC c+asm.
Весь подраздел "Математика" завален темами под emu8086, а в действительности (я так думаю по ряду признаков) нужны программы под Windows.

aleksgolovnya, приведите исходную постановку задачи.
0
aleksgolovnya
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 2
30.10.2017, 17:52  [ТС] 6
Привести примеры режимов адресации памяти. Для этих примеров вычислить абсолютный адрес байта.
0
proc3nt
волшебник
652 / 512 / 153
Регистрация: 26.05.2012
Сообщений: 1,439
30.10.2017, 17:56 7
Цитата Сообщение от aleksgolovnya Посмотреть сообщение
вычислить абсолютный адрес байта
абсолютный адрес = физический адрес = логический адрес сегмента * 16 + логический адрес смещения байта..
0
ФедосеевПавел
Модератор
3860 / 2180 / 895
Регистрация: 01.02.2015
Сообщений: 7,263
30.10.2017, 20:24 8
aleksgolovnya, в
http://www.cyberforum.ru/post5323071.html
есть раздел "Режимы адресации"

Только учтите, там приводятся примеры 32-разрядного кода.
Их 16-разрядные аналоги:
1. mov ax, dx
2. mov ax,[4010h]
3. mov ax,[si]
4. mov ax,[si+1000h]
5. mov ax,[bx+di]
6. mov ax,[bx+si+1000h]
7. такого в 16-разрядной системе нет
Для каждого случая - тот адрес, что получается при вычислении в скобках это не адрес, а смещение в сегменте. А абсолютный адрес вычисляется по формуле
АбсАдрес= Сегмент*16+Смещение
Значение Сегмент берётся из сегментного регистра, например, в данных примерах - ds. Но т.к. программы перемещаемые, то само это значение на этапе компиляции не известно. Только при запуске программы операционная система загружает в сегментные регистры конкретные числа.

Поэтому, данное задание наполовину лишено смысла - нам неизвестно значение ds.
0
30.10.2017, 20:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2017, 20:24

Найти адрес функции из запущенного .exe
Добрый вечер. Хочу пропатчить .exe файл. С помощью ollydbg внес правки в сам...

Найти адрес ячейки внутренней памяти данных путем деления числа 3С на 2
Найти адрес ячейки внутренней памяти данных путем деления числа 3С(в 16ричной...

Найти адрес начала и конца (для каждой секции), чтобы можно было произвести чтение/запись
в структуре IMAGE_SECTION_HEADER есть такое поле: PointerToRawData, в котором...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru