0

putcharpushと を少しいじっていましたpop。の値をプッシュしrcxて何かを実行し、呼び出しputcharて rcx に戻そうとしたところ、 の値rcxが 0 に変更されていることがわかりました。コードの最初のビットと同様です。

比較のために、コードの 2 番目のビットを作成しました。ここでは、 をプッシュrcxし、そうではないことを行い、それをputcharに戻しますがrcxrcxプッシュされた値のままです。

mov rcx, 123
push rcx
inc rcx
call [putchar]
pop rcx
call [putchar]


mov rcx, 123
push rcx
inc rcx
pop r12
call [putchar]
mov rcx, r12
call [putchar]

putchar実際にスタックをクリアしますか? これからスタック(または少なくともその重要な部分)を保護する方法を知っている人はいますか?

4

0 に答える 0