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-- ----