まずは、これまでのすべてのサポートに感謝します。ASCIIコードの解釈(アセンブリ)
完全なコードは、私が困っこれらの行を理解しているhere
を見つけることができます。私はいくつかのコメントを書いた...
行、例えば、moves:[si + 6]、alは、si + 6でマークされたメモリアドレスにalのデータを移動することを意味します(これはオフセット計算)。
次に、ループ内にsiを追加すると、40と表示されますか?
何かが私にすべてを意味します!ありがとうございました。
L0_95: ; this segment prints ASCII code 0 - 95
mov si,6 ; refers to the string we declared at the beginning
mov cx,4 ; I think this is the height?
C1A:
; this loop adds the name of the column
mov al,string[0]
mov es:[si],al
mov al,string[2]
mov es:[si+6],al
mov al,string[4]
mov es:[si+24],al
mov al,string[6]
mov es:[si+28],al
add si,40 ;;;; what is this line?
loop C1A
mov si,122 ;;;; and these three lines?
mov bx,0
mov cx,4
C1B:push cx
mov cx,24
add si,40
C1C:push cx
call DEC_CONVERT
add si,2
call HEX_CONVERT
add si,2
call BIN_CONVERT
add si,2
call CHAR_CONVERT
inc bx
add si,126
pop cx
loop C1C
pop cx
sub si,3840
loop C1B
ret
L96_191:
確かにあなたはgoogleかdocoを自分で見ることができますか? –
3年前から他の誰かの16ビットDOSアセンブリ言語の宿題を理解するのを助けてほしいですか?たとえそれが機能するのか、どうすればわかりますか? –
最初に私はここに来て感謝します。まあ...コンピュータ言語を学ぶことの一部は、他人のコードを読むことですね。 C + +やJavaやPythonとは異なり、docsは非常に有益なIMOではありません。おそらく私はまだこの時点では初心者ですから。 – CppLearner