Неправильное сложение двух чисел - Assembler
Формулировка задачи:
В Emu8086 пишу код:
И в результате в регистре AX появляется результат = 4A36, но ведь это не правильно...
Почему такой результат?
DATAX DW 0148H DATAY DW 0237H MOV AX, DATAX ADD AX, DATAY
Решение задачи: «Неправильное сложение двух чисел»
textual
Листинг программы
.model small .data DATAX DW 0148H DATAY DW 0237H .code start: mov ax,@data mov ds,ax MOV AX, DATAX ADD AX, DATAY mov ah,4Ch int 21h end start
Объяснение кода листинга программы
- .model small - Эта инструкция устанавливает модель сегмента данных для программы. В данном случае используется модель
small
, что означает, что сегменты данных и кода имеют по 16 бит. - .data - Эта инструкция указывает на то, что следующий код относится к данным. В этом сегменте будут определены переменные, которые будут использоваться в программе.
- DATAX DW 0148H - Эта инструкция определяет переменную
DATAX
как 16-битное слово со значением 0148H. - DATAY DW 0237H - Эта инструкция определяет переменную
DATAY
как 16-битное слово со значением 0237H. - .code - Эта инструкция указывает на то, что следующий код относится к исполняемому коду программы.
- start: mov ax,@data - Эта инструкция перемещает регистр AX в сегмент данных программы. Это обычно делается для того, чтобы иметь возможность обращаться к переменным в сегменте данных.
- mov ds,ax - Эта инструкция устанавливает сегмент данных (DS) равным сегменту, содержащемуся в регистре AX.
- MOV AX, DATAX - Эта инструкция перемещает значение переменной
DATAX
в регистр AX. - ADD AX, DATAY - Эта инструкция складывает значение переменной
DATAY
с значением в регистре AX. - mov ah,4Ch - Эта инструкция перемещает значение регистра AH в регистр AH и устанавливает его равным 4Ch.
- int 21h - Эта инструкция вызывает BIOS-интерфейс с номером 21h. В данном случае, скорее всего, это вызывает отображение сообщения, так как значение в регистре AH равно 4Ch.
- end start - Эта инструкция указывает на то, что программа начинается с метки
start
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д