2017-06-22 57 views
0

我在Z80汇编语言以下指令:指令“JP”在哪里?实际上跳?

JP . 

这不是很清楚,我在那里跳跃。

+0

你正在使用哪种汇编程序? – harold

+2

这不是zilog的问题,而是您的汇编程序的“特性”。很可能它是一个“现在的地址”。反汇编输出,如果你得到像'03f1 JP 0x03f1'这是 – Tommylee2k

+1

你使用的汇编器将是有用的,因为哈罗德问。我已经看到'$'和'*'(取决于汇编程序)是当前的程序计数器。可能'''(期间)是程序计数器。 –

回答

1

JP .指令意味着PC保持在那里!

0

许多汇编程序提供特殊变量或其他符号,可用于表示装配过程中可用的有用信息。

例如,一个早期的汇编(这是深藏在我的过去,所以我不知道到底是哪一个),用于$表示被组装到当前位置,允许你做这样的事情:

msg: ds "This is my message" 
msg_sz: equ $ - msg 

鉴于$是组装成,符号msg_sz将被设置为减去消息,从而有效地为所述消息的大小的开始的下一个字节。然后,您可以将msg加载到一个寄存器中,msg_sz加载到另一个寄存器中,然后调用使用这两个值来处理消息的函数。

几乎可以肯定的是.在你的汇编正在执行相同的功能,因为这将有效地使jump一个无限循环,这是我们经常在我们早期的汇编分配用来发信号程序结束 - 大部分的东西我们也就是在裸机上,因此没有操作系统返回:-)

而且,事实上,GNU汇编as仍然使用期限为special symbol

特殊符号'.'指的是正在装入的当前地址。因此,表达式'melvin: .long .'定义为Melvin以包含其自己的地址。指定.的值与.org指令的处理方式相同。因此,表达式'.=.+4'与说'.space 4'相同。

相关问题