Использование сборки 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.