我爲Z80二進制文件製作了一個模擬器,但是我無法確定所有的整數數據類型是否有符號from the manual或來自google。那麼從A
,B
,HL
,BC
等寄存器中的數字是否被簽名?Z80彙編器/機器代碼中是否有字節/字/地址有符號或無符號?
此外,在機器代碼中的字節/字/地址之後的指令作爲參數簽名或無符號?
如同這些實施例中(從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
預先感謝。
我明白了,所以'add'指令將在有符號和無符號整數上執行加法。這很煩人,至少可以這樣說,因爲我的模擬器是用C#編寫的,不支持只添加原始數據。我會做一些ASM互操作的事情。 – 2010-09-13 16:34:04
您確定嗎?我比裝配更感興趣的機器碼。地址總是格式化爲無符號的,因爲擁有負面地址似乎很荒謬? – 2010-09-13 16:40:15
程序集只是人類可讀的機器代碼翻譯。每個彙編指令都與某個操作碼完全匹配,反之亦然。關於地址,重點是指示與他們合作的方式,以及他們如何解釋。當然,地址總是被視爲正數。但抵消可能是負面的。 – 2010-09-13 18:03:27