Ассемблерная вставка: превышение размера операнда - Assembler

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

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

#include<iostream>
#include<stdio.h>
#include<tchar.h>
 
using namespace std;
 
int x;
int _tmain(int argc, _TCHAR* argv[])
{
    _asm
    {
        xor bl,bl
        mov ax,51
        mov dl,10
        div dl
        mov bl,ah
        mov x,bl
    }
    cout << "Wynik:" << x << endl;
    cin.get();
    return 0;
}
Чтобы я не делал, не могу что то в икс загрузить, всегда пишет превышение размера операнда(в строчке mov x,bl).Может дело в int x??Я не понимаю=(

Решение задачи: «Ассемблерная вставка: превышение размера операнда»

textual
Листинг программы
__asm
    {
        mov eax,60
        neg eax
        mov x,eax
    }

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

  1. __asm - директива препроцессора, указывающая на то, что следующий фрагмент кода написан на языке ассемблера.
  2. { - начало блока кода.
  3. mov eax,60 - команда переноса значения 60 в регистр eax.
  4. neg eax - команда взятия отрицательного значения регистра eax.
  5. mov x,eax - команда переноса значения регистра eax в переменную x.
  6. } - конец блока кода.

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


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

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

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