Некорректный результат умножения - Assembler

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

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

Скажите пожалуйста, если ставлю переменную 130 [sx], то эффективный адрес после умножения eax получается не правильный 12594, а должно 78130. Если ставлю 100 в [sx], то эффективный адрес eax будет правильный 60100. Почему, заранее благодарю.
                                 push eax
                                 xor eax,eax 
                                 push esi
                                 xor esi,esi                               
                             mov eax, 601
                             mul [sx]
                             mov si,[sy]
                             add esi,eax                                 
                                   pop eax
 
                                   push esi
                                   xor esi,esi
                                   push ebx 
                                   xor ebx,ebx
                                  push eax 
                                  xor eax,eax
                              lea ebx, [a3]
                               mov al,1
                               mov [ebx+esi],al                      
                                   pop eax
                                   pop ebx
                                   pop esi

Решение задачи: «Некорректный результат умножения»

textual
Листинг программы
sx  dd  130
;-------------
mov   eax,601
mul   [sx]

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

  1. Переменная sx содержит значение 130.
  2. Код выполняет операцию умножения, используя регистр eax как источник данных и переменную sx как множитель.
  3. Результат умножения сохраняется в регистре eax.

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

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