2

Z80 バイナリ用のエミュレーターを作成していますが、すべての整数データ型が署名されているか署名されていないかをマニュアルまたは Google から確認できません。では、register AB...などからの数字は署名されていますか?HLBC

また、マシンコードでは、命令の後に引数が符号付きまたは符号なしとして来るバイト/ワード/アドレスがありますか?

これらの例のように ( 8080/Z80 Instruction Setから):

8080 Mnemonic    Z80 Mnemonic    Machine Code    Operation
-------------    ------------    ------------    ---------
MVI A,byte       LD  A,byte      3Ebyte          A <- byte
LXI B,word       LD  BC,word     01word          BC <- word
JMP address      JP  address     C3address       PC <- address

前もって感謝します。

4

3 に答える 3

3
  1. レジスタにはどちらかを含めることができ、 2の補数のため、ほとんどのオペランドは両方の回答を同時に計算します。ただし、一部の命令では、含まれている値が符号付きか符号なしかに関する情報が必要です。それらは2つの形式で存在します。1つは署名付き用、もう1つは署名なし用です。Z80がこれらのいずれかを持っているかどうかを思い出せません。

  2. (1.)を参照してください。後方にジャンプできるように、絶対アドレスは符号なしで、相対アドレス(ブランチ)は符号付きです。

于 2010-09-14T07:38:57.537 に答える
3

多くのマシンでは、符号付き数値と符号なし数値の唯一の違いは、大きさの比較が実行される方法と、短い値が長い値に変換される方法です (多くのプロセッサの乗算操作は、短い型を長い型に効果的に変換することに注意してください。除算は本質的に大きさの比較を実行します)。上記以外のタイプの演算を実行する場合、符号付きオペランドと符号なしオペランドは正確に (ビットごとに) 同じように処理されるため、それらを区別する必要はありません。

于 2010-12-19T02:21:08.093 に答える
2

AKAIK、アセンブリ言語データと転送命令には符号情報が含まれていません。データ操作と転送操作の両方で、データ サイズのみが定義されます。符号情報は、符号付き/符号なし乗算命令など、一部の命令の一部です。したがって、同じレジスタが imul 命令では符号付き整数として扱われ、mul 命令では符号なし整数として扱われる場合があります。

于 2010-09-13T16:28:17.983 に答える