ここ 1 日か 2 日、Assembly について掘り下げてきました。私はかなり良いチュートリアルを読んでいて、さまざまなレジスタ/ 2進数システムの仕組みなどをカバーしています。ただし、実際にはアセンブリ コード自体には入りません。アセンブリの概念とその仕組みなどについて説明しているだけです (以下のようないくつかのコード例を提供していますが、コードで何が起こっているかについてはあまり説明していません)。
msg db 'Displaying 9 stars', 0xa
len equ $ - msg
s2 times 9 db '*'
物事がどのように機能するかを知るようになったと感じていますが、上記のコードに関していくつか質問したいと思います (機能するという事実を受け入れるのではなく、実際にどのように機能するかを理解したいのです)。
1) 0xa の後に任意のテキストを入れることができますか (0xa は改行であると仮定します)?
2) $ - VARIABLE (この場合、$ - msg ) は変数の長さを取得しますか? $の本当の目的は何ですか?
3) ここで何が起きているか: s2 x 9 db ' '*
質問 #3 での私の仮定は、変数 s2 が 9 の文字列に設定されているということです。もしそうなら、なぜデータベース ' ' が最後に来ますか? s2 db '*' times 9 を実行する方が理にかなっているでしょうか?