g0dafk Ответов: 0

Как я могу распечатать содержимое адреса и зарегистрироваться в сборке 8086?


Давайте возьмем для примера. адрес 010h и регистр DS.

Как я могу получить доступ к их ценностям?

У меня есть функция, которая печатает числа в виде двоичного кода ( потому что это то, что я хочу ). Я хочу напечатать содержимое в виде двоичного и десятичного кода. Оставьте в покое десятичный код, я разберусь с этим позже.

Как я могу получить доступ к значению по адресу 010h? А как насчет значения регистра DS?
Я обыскал весь интернет, но... все еще не могу понять, что это такое.

Что я уже пробовал:

Эта функция выводит только число в двоичном формате. Insead of 010h это должно быть содержание адреса 010h...
mov bl, 010h
mov cx, 8
print: mov ah, 2   ; print function.
       mov dl, '0'
       test bl, 10000000b  ; test first bit.
       jz zero
       mov dl, '1'
zero:  int 21h
       shl bl, 1
loop print
; print binary suffix:
mov dl, 'b'
int 21h

Richard MacCutchan

Но это то, что вы печатаете. Если вам нужно содержимое адреса 010h, то вам нужно поместить адрес в регистр смещения, загрузить содержимое адреса и затем распечатать его. Но печать в шестнадцатеричном формате гораздо полезнее, чем в двоичном.

И...
- Я перерыл весь интернет."
Это совершенно неверно, так как это займет целую вечность.

g0dafk

Ха-ха, ты меня поймал. Под "всем интернетом" я подразумевал первую страницу Google, потому что никто никогда не осмеливался нажать на страницу 2.
Не могли бы вы предоставить мне веб-сайт, где я могу прочитать больше о смещенных регистрах и инструкциях по загрузке? Я этого не вполне понимаю. Какие есть хорошие инструкции, чтобы посмотреть и прочитать о них?

Richard MacCutchan

Просто Google для любой версии ассемблера, с которой вы пытаетесь работать. Понятия не имею, что вы искали в прошлый раз, но посмотрите на это intel assembler - поиск в Google[^].

0 Ответов