Неправильное сложение двух чисел - Assembler

Узнай цену своей работы

Формулировка задачи:

В Emu8086 пишу код:
DATAX DW 0148H
DATAY DW 0237H
MOV AX, DATAX
ADD AX, DATAY
И в результате в регистре AX появляется результат = 4A36, но ведь это не правильно... Почему такой результат?

Решение задачи: «Неправильное сложение двух чисел»

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

Объяснение кода листинга программы

  1. .model small - Эта инструкция устанавливает модель сегмента данных для программы. В данном случае используется модель small, что означает, что сегменты данных и кода имеют по 16 бит.
  2. .data - Эта инструкция указывает на то, что следующий код относится к данным. В этом сегменте будут определены переменные, которые будут использоваться в программе.
  3. DATAX DW 0148H - Эта инструкция определяет переменную DATAX как 16-битное слово со значением 0148H.
  4. DATAY DW 0237H - Эта инструкция определяет переменную DATAY как 16-битное слово со значением 0237H.
  5. .code - Эта инструкция указывает на то, что следующий код относится к исполняемому коду программы.
  6. start: mov ax,@data - Эта инструкция перемещает регистр AX в сегмент данных программы. Это обычно делается для того, чтобы иметь возможность обращаться к переменным в сегменте данных.
  7. mov ds,ax - Эта инструкция устанавливает сегмент данных (DS) равным сегменту, содержащемуся в регистре AX.
  8. MOV AX, DATAX - Эта инструкция перемещает значение переменной DATAX в регистр AX.
  9. ADD AX, DATAY - Эта инструкция складывает значение переменной DATAY с значением в регистре AX.
  10. mov ah,4Ch - Эта инструкция перемещает значение регистра AH в регистр AH и устанавливает его равным 4Ch.
  11. int 21h - Эта инструкция вызывает BIOS-интерфейс с номером 21h. В данном случае, скорее всего, это вызывает отображение сообщения, так как значение в регистре AH равно 4Ch.
  12. end start - Эта инструкция указывает на то, что программа начинается с метки start.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы