초학 Delphi 삽입 어셈블리[29] - 레지스터가 받아들일 수 있는 수치 범위

2315 단어 Delphi
예를 들어 EAX AX AH AL 네 개의 메모리가 실제로 존재하는 것은 EAX가 하나이고 AX AH AL은 서로 다른 접근 방식에 불과하다.
11111111 11111111 11111111 11111111 : EAX
11111111 11111111
11111111 11111111 : AX
11111111 11111111
11111111 11111111 : AH
11111111 11111111 11111111
11111111 : AL


//   AX    16 2     ,            65535

{        65535}

function Fun: Integer;

asm

  mov ax, 65535 {  AX       EAX   }

end;



{       }

function Fun: Integer;

asm

  mov ax, 65536 {    AX    }

end;


 
   
// AL AH 255 { 255} function Fun: Integer; asm mov al, 255 end; { 65280} function Fun: Integer; asm mov ah, 255 end; { 255? AH 255 , EAX 00000000 00000000 11111111 000000002}
// ( ) , ; CPU , : { , 0 } function Fun: Integer; asm mov eax, 4294967295 { eax } add eax, 1 { +1 } end; { : 1 00000000 00000000 00000000 000000002; EAX 32 , .}
// AX , EAX ? { 0 , EAX; AX EAX , } function Fun: Integer; asm mov ax, 65535 add ax, 1 end;
//AH AL { 0} function Fun: Integer; asm mov al, 255 add al, 1 end;
// ? { , -1 } function Fun: Integer; asm mov eax, -1 end;
{ : } function Fun: Integer; asm mov al, -256 mov ah, -256 mov ax, -63356 mov eax, -4294967296 end; { ! }
// , : { 0 } function Fun: Integer; asm mov eax, -4294967296 end; { , Integer; Integer -2147483648; -4294967296? .}
// , AX : -1 { : 65535, ?} function Fun: Integer; asm mov ax, -1 end; { -1 AX : 11111111 111111112; EAX : 00000000 00000000 11111111 111111112; EAX 1 , EAX : 65535 }
// : { 255} function Fun: Integer; asm mov al, -1 end; { 65280} function Fun: Integer; asm mov ah, -1 end;
// 16 8 32 , .

좋은 웹페이지 즐겨찾기