Смена знака у больших чисел в программе DEBUG - Assembler

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

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

Здравствуйте! Подскажите пожалуйста как можно сменить знак у большого числа (12223278h) в программе DEBUG. Я знаю, что для этого нужно использовать команду NEG, но для этого придется разбить число на две части и результат получается не совсем верным. Заранее спасибо

Решение задачи: «Смена знака у больших чисел в программе DEBUG»

textual
Листинг программы
mov ax,1222h
mov bx,3278h
not ax
not bx
add bx,1
adc ax,0;ax:bx=EDDDCD88h

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

  1. mov ax,1222h — в данной команде переменная ax получает значение 1222 (1222h — шестнадцатеричное число).
  2. mov bx,3278h — в данной команде переменная bx получает значение 3278 (3278h — шестнадцатеричное число).
  3. not ax — в данной команде переменная ax инвертируется, т.е. все её биты меняются на противоположные.
  4. not bx — в данной команде переменная bx инвертируется, т.е. все её биты меняются на противоположные.
  5. add bx,1 — в данной команде к переменной bx прибавляется число 1.
  6. adc ax,0 — в данной команде к переменной ax прибавляется число 0.
  7. ax:bx=EDDDCD88h — в данной команде происходит сравнение переменных ax и bx, и если они равны между собой, то их значение равно EDDDCD88h (10011100100011110000111100001111).

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

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