私はx86アセンブリのレジスタを理解するのに苦労していますが、EAXは完全な32ビット、AXは下位16ビット、そしてAHとALはAXの上位8ビットです。質問。x86 AHとALを指定してAXを計算しますか?
AL = 10、AH = 10の場合AXの値は何ですか?
私はこれを10をバイナリ(1010)に変換し、それをAX(0000 1010 0000 1010)の上位と下位ビットとして取り、これを10進数(2570)に変換します。ここで正しい答えをしていますか? RAX
がx86-64
に存在する64ビットのレジスタで
RR RR RR RR EE EE HH LL
| | || ||
| | || AL
| | AH |
| | |___|
| | AX |
| |_________|
| EAX |
|_____________________|
RAX
に...:
はい、正しいです。あなたは 'AX = 256 * AH + AL = 2560 + 10 = 2570'でもかまいません。 PS:疑わしいときにデバッガでコードを実行できます。 – Jester
ショートカットが便利になってくれてありがとう@Jester :) – Dfarrelly
ヘックスに変換するのは精神的に簡単です。すべてのバイトは2桁の16進数です。それはちょうど0x0a0aで、AHが最初です。 –