Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ポインタ入門 i386 アセンブラ編

7shi
January 03, 2025

ポインタ入門 i386 アセンブラ編

C言語のポインタ経由の目盛り書き込みをi386のアセンブリ言語と比較します。

7shi

January 03, 2025
Tweet

Other Decks in Programming

Transcript

  1. 00000000:00 00 00 00 00 00 00 00 00000008:00 00

    00 00 00 00 00 00 MOV BYTE PTR[0x00000001],0x12 MOV WORD PTR[0x00000004],0xFECA MOV DWORD PTR[0x0000000A],0xEFBEADDE
  2. 00000000:00 12 00 00 00 00 00 00 00000008:00 00

    00 00 00 00 00 00 MOV BYTE PTR[0x00000001],0x12 MOV WORD PTR[0x00000004],0xFECA MOV DWORD PTR[0x0000000A],0xEFBEADDE
  3. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    00 00 00 00 00 00 MOV BYTE PTR[0x00000001],0x12 MOV WORD PTR[0x00000004],0xFECA MOV DWORD PTR[0x0000000A],0xEFBEADDE
  4. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    DE AD BE EF 00 00 MOV BYTE PTR[0x00000001],0x12 MOV WORD PTR[0x00000004],0xFECA MOV DWORD PTR[0x0000000A],0xEFBEADDE
  5. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    DE AD BE EF 00 00 MOV BYTE PTR[0x00000001],0x12 MOV WORD PTR[0x00000004],0xFECA MOV DWORD PTR[0x0000000A],0xEFBEADDE
  6. 00000000:00 00 00 00 00 00 00 00 00000008:00 00

    00 00 00 00 00 00 *(char *)0x00000001 = 0x12; *(short *)0x00000004 = 0xFECA; *(long *)0x0000000A = 0xEFBEADDE;
  7. 00000000:00 12 00 00 00 00 00 00 00000008:00 00

    00 00 00 00 00 00 *(char *)0x00000001 = 0x12; *(short *)0x00000004 = 0xFECA; *(long *)0x0000000A = 0xEFBEADDE;
  8. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    00 00 00 00 00 00 *(char *)0x00000001 = 0x12; *(short *)0x00000004 = 0xFECA; *(long *)0x0000000A = 0xEFBEADDE;
  9. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    DE AD BE EF 00 00 *(char *)0x00000001 = 0x12; *(short *)0x00000004 = 0xFECA; *(long *)0x0000000A = 0xEFBEADDE;
  10. 00000000:00 12 00 00 CA FE 00 00 00000008:00 00

    DE AD BE EF 00 00 *(char *)0x00000001 = 0x12; *(short *)0x00000004 = 0xFECA; *(long *)0x0000000A = 0xEFBEADDE;