MIPS的程序集是否读取每个标签?忽略任务和语法,我只是快速地把东西放在一起.
add reg3, reg1, $zero
add reg1, reg1, reg2
beq reg1, reg3, BRANCH1 #reg2 contents are zero
bne reg1, $zero, BRANCH2 #reg1 doesn't equal zero
BRANCH1: add returnReg, reg1, $zero
BRANCH2: add returnReg, reg2, $zero
jr returnAddress
Run Code Online (Sandbox Code Playgroud)
这会逐行读取,包括标签,除非它们被跳过?例如,除非reg1的内容等于零,否则每次都会执行BRANCH1?
来自维基: 标签是让您的生活变得简单的东西.当你引用一个程序时, 你可以只给它一个名字,你可以 在循环,跳转和变量名中使用它.标签不会出现在您的最终代码中,它们只是为了方便起见,这是您从典型的MIPS汇编程序中获得的少数优惠之一.它还使汇编程序的生活变得简单,因为它现在可以轻松地重新定位和链接代码.如果您不知道那些是什么,请不要担心,这会在以后发生.
从这一点来看,我认为标签只不过是一个行参考.这意味着跳转代码(使用bne,beq,jr,j等)是防止某条线上的指令被读取的唯一方法.这是正确的想法吗?
| 归档时间: |
|
| 查看次数: |
11702 次 |
| 最近记录: |