Menu
Coddy logo textTech

ASCIIと16進数

CoddyのAssemblyジャーニー「基礎」セクションの一部。レッスン 13/45。

コンピューターは数字しか理解できません。では、「A」、「b」、「?」のような文字をどのように保存しているのでしょうか?

答えはASCII(American Standard Code for Information Interchange)です。ASCIIは、すべての文字に番号を割り当てる表です。

ASCIIの仕組み:

文字ASCII番号(10進数)ASCII番号(16進数)
'A'650x41
'B'660x42
'C'670x43
'a'970x61
'b'980x62
'0'480x30
'1'490x31
' '(空白)320x20
'\n'(改行)100x0A
'\0'(ヌル)00x00

アセンブリで覚えておくべき重要なASCII値:

文字16進数必要な理由
'A'0x41大文字はここから始まります
'a'0x61小文字はここから始まります
'0'0x30数字はここから始まります
空白0x20単語を区切ります
改行(\n0x0A次の行へ移動します
ヌル(\00x00文字列の終端マーカー

パターンに注目してください:

パターン
大文字の A-Z は連続している'A'=65, 'B'=66, 'C'=67...
小文字の a-z は連続している'a'=97, 'b'=98, 'c'=99...
数字の 0-9 は連続している'0'=48, '1'=49, '2'=50...
小文字 = 大文字 + 32'a' (97) = 'A' (65) + 32

文字列がメモリに格納される仕組み:

改行を含む単語 "Hi" は次のように格納されます:

文字16進数2進数
'H'0x4801001000
'i'0x6901101001
'\n'0x0A00001010

アセンブリでは、これを次のように記述します: db 'Hi', 0x0A

アセンブリでこれが必要な理由:

data.asm で文字列を定義すると、メモリに ASCII コードを格納することになります。文字列を出力すると、オペレーティングシステムがそれらの ASCII コードを読み取り、対応する文字を表示します。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Assemblyプレイグラウンド