Смена знака у больших чисел в программе 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
Объяснение кода листинга программы
- mov ax,1222h — в данной команде переменная ax получает значение 1222 (1222h — шестнадцатеричное число).
- mov bx,3278h — в данной команде переменная bx получает значение 3278 (3278h — шестнадцатеричное число).
- not ax — в данной команде переменная ax инвертируется, т.е. все её биты меняются на противоположные.
- not bx — в данной команде переменная bx инвертируется, т.е. все её биты меняются на противоположные.
- add bx,1 — в данной команде к переменной bx прибавляется число 1.
- adc ax,0 — в данной команде к переменной ax прибавляется число 0.
- ax:bx=EDDDCD88h — в данной команде происходит сравнение переменных ax и bx, и если они равны между собой, то их значение равно EDDDCD88h (10011100100011110000111100001111).