Представление адреса памяти ассемблера - PullRequest
2 голосов
/ 03 января 2011

Я пытаюсь попасть в ассемблер, и я часто сталкиваюсь с числами в следующей форме:

org 7c00h

; initialize the stack:
mov     ax, 07c0h
mov     ss, ax
mov     sp, 03feh ; top of the stack.

7c00h, 07c0h, 03feh - Как называется эта цифровая запись? Что они имеют в виду? Почему они используются над "нормальными" десятичными числами?

Ответы [ 3 ]

1 голос
/ 03 января 2011

Стоит также отметить, что 0: 7C00 - это адрес загрузки загрузочного сектора.

Также стоит отметить: 07C0: 03FE - это тот же адрес, что и 0: 7FFE, из-за способа сегментированной адресации.

Этот парень оставил себе 510-байтовый стек (он сделал очень типичную ошибку при установке стека загрузочного сектора).

1 голос
/ 23 января 2011

Это числа в шестнадцатеричном формате , то есть в базе 16, где от A до F имеют цифры от 10 до 15.

Одно преимущество состоит в том, что существует более прямое преобразование вдвоичные числа.Приложив немного практики, легко увидеть, какие биты в числе равны 1, а какие равны 0.

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

1 голос
/ 03 января 2011

Это шестнадцатеричная система счисления с 16 цифрами 0-9 и A-F. Адреса памяти даны в шестнадцатеричном виде, потому что они короче, их легче читать, а числа, представляющие ячейки памяти, не означают ничего особенного для людей, поэтому нет смысла иметь длинные числа. Я предполагаю, что где-то в прошлом кто-то должен был также вводить некоторые адреса вручную, с тем же успехом можно было начать там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...