Bueno, seguimos jugando con el codigo.
procedure TForm1.Button1Click(Sender: TObject);
var
result: integer;
begin
asm
Mov eax, 183C3C64h;
movzx eax, al; // aqui nos quedamos con 'AL' solamente en el acumulador(64) ?????????????????????????????????
Mov result, eax;
end;
edit1.text:=inttostr(result); // aqui nos muestra AL en decimal (100) ??????????????????????????????
end;
Que les parece muchachos , ¿Se animan?
Un Saludo.
al ?... AL ?... me perdí totalmente :$
Hola Fena.
al o AL son los 8 bits menos significativos de eax.
"eax" es el registro acumulador de 32 bits y que se divide de la siquiente forma: los primeros 8 de la derecha se llama "AL" los que le siguen se llaman AH y la union de estos dos AL y AH que son dos bytes=16 bits o un word se llama AX. en pocas palabras el registro acumulador de un Intell de 32 bits se llama eax y la mitad derecha o los 16 bits menos significativos se llaman AX, que a su vez se pueden dividir en dos partes AH y AL.
Si queremos manipular 8 bits podemos invocar a "AL", si usaremos 16 bits entonces AX y si son los 32 entonces EAX.
No se si me explique bien?
Un Saludo.