Red de conocimiento informático - Material del sitio web - Cómo usar lenguaje ensamblador para encontrar el valor absoluto de un número en AX y almacenarlo en AX

Cómo usar lenguaje ensamblador para encontrar el valor absoluto de un número en AX y almacenarlo en AX

Dime una idea. Si el bit más alto de AX es 0, entonces el contenido de AX es su valor absoluto. Si el bit más alto de AX es 1, entonces invierte AX poco a poco y suma 1 en. al final, obtienes el valor absoluto de AX

------Soluciones------

muy fácil

segmento de código<. /p>

supongamos cs:code

start: y ax,0111111111111111b

mov ah,4ch

int 21h

el código termina

fin y comienzo

------Soluciones------

neg

---- --Soluciones ------

.

.

.

mov ax,8123H

test ax ,8000h

jz eixt ;Si el bit más alto es 0, es un número positivo y no será procesado

neg ax ; registro original

salir :mov ah,4ch

int 21h

.

---. ---Soluciones------

;solo esto funciona

test ax,8000h

jz ok

neg ax

ok:..

------Soluciones------

cwd

xor ax, dx

sub ax , dx

Me temo que muchas personas con buenas habilidades de ensamblaje no lo saben, pero el compilador de C suele tener la respuesta más rápida

Los de arriba que usan transferencia condicional son mucho más lentos

------Soluciones------

xiaott(puedo dormir)

¿Se puede cambiar la cuarta oración neg ax a jnz ax?

No sé qué es neg, parece significar negativo

------Soluciones-- ----