#assembly #x86-16 #real-mode
#сборка #x86-16 #в реальном режиме
Вопрос:
.data
len dw 10
msg db "1234567890"
.code
....
Адрес для сегментов
DS = 0ACA
CS = 0AC7
Каков абсолютный адрес для строки msg?
Насколько я понимаю, эффективный адрес для сообщения сообщения равен 21 в декабре, который составляет 15 часов, затем я делаю DS: 0015, который является ACB5, но он не работает..
Доступные ответы:
0ACA2
0ACC0
0ACC
0ACA0
Комментарии:
1. Чувак, прекрати публиковать здесь свои домашние вопросы. Никто не собирается делать за вас домашнее задание.
Ответ №1:
Учитывая ваши текущие предположения, вы делаете правильный расчет для линейного адреса.
(0ACAh << 4) 0015h
действительно выдает линейный адрес 0000ACB5h.
Однако почему вы понимаете, что метка msg находится со смещением 21 (15h)?
Допустимо предположить, что регистр DS
сегмента указывает на .data
раздел, и увидеть следующий фрагмент кода
.data
len dw 10
msg db "1234567890"
там, где переменная len занимает 2 байта, потому что это то, что dw
делает (DefineWord) , смещение к msg будет скорее равно 2.
Если вы повторите свои вычисления, вы увидите, что правильный ответ указан в предоставленном списке…