Нужно уточнить в сборке 8086, что содержит регистр после загрузки в него номера BCD? - PullRequest
0 голосов
/ 29 января 2019

Использование сборки 8086:

Мне было дано задание, которое запрашивает конкретное содержимое регистров после использования следующих команд.Я буду комментировать то, что считаю верным, но я, вероятно, на 100% неправ.

MOV AH, 0

        AX = 0000 0000 0000 0000   AH = 0000 0000   AL = 0000 0000
        or are they equal to AX = 0000H   AH = 00H   AL = 00H ?

MOV AL, 9

        AX = 0000 0000 0000 1001   AH = 0000 0000   AL = 0000 1001
        or AX = 0009H   AH = 00H   AL = 09H ?

MOV AL, 7

        AX = 0000 0000 0000 0111   AH = 0000 0000   AL = 0000 0111
        or AX = 0007H   AH = 00H   AL = 07H ?

AAA

        AX = 0000 0000 0000 0111   AH = 0000 0000   AL = 0000 0111
        or AX = 0007H   AH = 00H   AL = 07H ?

Неправильно ли я считать, что регистры всегда содержат только двоичную информацию?Мне сказали, что они 8-битные (за исключением нескольких других, и если вы комбинируете AL и AH, вы получаете 16-битный AX), что заставляет меня поверить, что они должны переносить только двоичные файлы.

Кроме того, я предполагаю, что после команды AAA содержимое AX, AH и AL не изменяется, потому что регистры находятся в двоичном формате, или оно заменяет его на свой номер ASCII (в шестнадцатеричном формате), который в этом конкретном случае также будет равен 7.?

По другому вопросу:

У меня также есть вопрос о команде, которую я мог бы использовать вместо MOV.Например, я хотел бы использовать то, что заменяет MOV AH, 0.Я пробовал LEA AH, 0, но я должен компенсировать адреса памяти, и я не уверен, что делать с этим.

Спасибо за любую помощь!

У меня естьисследовал команду AAA, но я нахожу информацию только о том, что происходит после использования AAA после команды ADD, а не при отсутствии команды ADD.

...