我怎么知道标签的地址?
我想在不添加额外代码的情况下,在平面汇编程序中获得标签的地址。
示例:
label1: ;is at adress 0
db 1h,2h,3h,4h,5h ;some data
label2: is at address 5 because label1 has 5 bytes of data
我可以将地址打印到控制台屏幕上,但这会增加程序的大小并更改结果。
我知道只使用标签,但我想要原始地址号码。
大约在9频道的上,杰弗里·里希特向查理·卡尔弗特展示了他的AsyncEnumerator,他展示了一段代码,其中控制流跳转到while循环内的标签,该标签遵从循环外的goto指令。这让我大吃一惊。我一时不敢相信。
因此,我尝试了类似的方法,正如我所预期的,C#不允许我这样做,因为标签不在goto语句的块范围内,而不是我想跳转的位置。
using System;
namespace JumpToInsideALoopWithGoToTest
{
class Program
{
static int i = 0;
static int someRa
假设我有两个C源文件A.c,B.c.
A.c包含一个标签,我只想从模块B.c中找到它。
A.c只包含一个函数:
int f() {
// some commands
aLabel:
// some more commands
return 1;
}
B.c也只包含一个函数:
extern aLabel;
int g() {
// do some stuff
goto aLabel;
}
显然,这两个文件链接在一起,形成一个最终的.exe文件。
如何跳转到外部标签?
提前谢谢。
我们有一个标签:
LABEL:
//Do something.
我们有一个函数。我们希望将label作为参数传递给此函数(否则我们无法访问函数中的标签),并且在某些情况下,我们希望跳过此标签。有可能吗?
我给出一个例子(伪代码)来说明:
GameMenu: //This part will be executed when program runs
//Go in a loop and continue until user press to [ENTER] key
while(Game.running) //Main loop for game
{
Game.setKey(
大家好,有没有人能帮我走出困境,我正在寻找一个像汇编一样实现JMP (跳转)指令的指导者。我发现可以使用Flex/Bison的goto功能,但我真的不知道该怎么做。有没有人知道。我非常感谢你的帮助。谢谢。
下面是一个它看起来是什么样子的例子。在JMP讲师的帮助下,他找到了标签L1。
:L1
IF FLAG AND X"0001"
EVT 23;
ELSE
WAIT 500 ms;
JMP L1;
END IF;