我有這個 C 代碼,我試圖在 Assembly (68K) 中復制:
int main()
{
int i=0;
char *string = "This is a string"
while(string[i]!=' ')
{
/.../
i ;
}
return 0;
}
我被困在string[i]!=0裝配的 , 索引部分。我需要與一些記憶中CMP.B的信。我嘗試將字串存盤為變數,將當前索引作為存盤在暫存器中的數字,并將其與暫存器中的空白空間進行比較,string[i]' 'CMP.B [STRING, D3],D5STRINGD3D5
uj5u.com熱心網友回復:
CMP.B [STRING, D3],D5
這不起作用:您需要使用地址暫存器,并且在使用暫存器時不能使用 32 位偏移量。
相反,將 的地址加載STRING到地址暫存器中 - 例如A4:
LEA.L (STRING), A4
然后執行CMP.B (0,D3,A4),D5
編輯
我不知道你使用的匯編程式。使用 GNU 匯編器,指令
上一篇:BMP標頭應該是什么樣子?CMP.B (0,D3,A4),D5被寫為CMP.B (0,
