以下SIC/XE機のアセンブリ言語コードは、これはブートストラップローダであるsicxeアセンブリ言語プログラミング
clear a
ldx #128
loop jsub getc
rmo a,s
shift s,4
jsub getc
addr s,a
stch 0,x
tixr x,x
j loop
getc td input
jeq getc
rd input
comp #4 ;if input is 4 then eof
jeq 80 ;jump to start of program
comp #48 ; compare to charcter 0
jlt getc ;skip charcters less than 0
sub #48
comp #10 ;if result is less than 10, conversion is complete
jlt return
sub #7 ;for hex digits A through F
return rsub
input byte x'F1'
.... ...ているこのプログラムの目的は、装置F1から読み取ると80から始まるアドレスに入力を保存する...今私の質問は、なぜシフトs、4をする必要があるのか...入力を1回とると、ascii値から元の値を見つけて送信するそれを格納するために 'ループ'する...プログラムからは、最初にチャタラクタの半分のバイトだけがループに送られ、次に他のものが送られるように見える...これが最初の場合、最初の半バイトはcharcterと同様に、上半身のascii操作は私たちに入力の本当の価値を与えません...またw鶏は、プログラムが...リスト内の他の文字は、次のヘルプのために同じ本からのラインです...代わりに読まれることはありません「のgetc」もう半分のバイトを取得するために
each byte of the code to be loaded is on device F1 as two hexadecimal digits
「宿題」タグが必要ですか? –