在MIPS指令集中,我们有类似“LB R1,0”的指令(R2)",意思是“从基地址存储在R2寄存器中的内存地址加载一个字节,加上偏移量,将此字节加载到寄存器R1”。我不是英语母语,想学习此指令的英语发音。将其发音为“加载字节R一零R二”是否正确?
dddzy1tm1#
当你大声对其他人说话时,你通常不会只读asm语法中可发音的部分,“R10 R2”可能会和r10, (r2)混在一起。0(r2)寻址模式中的0只是一些人喜欢包含的占位符,可能是因为机器码总是有一个16位立即数位移。大声说出来,零是纯粹的混乱,对于侦听器来说,要将其“解析”回asm指令已经不是小事了。在我的脑海里阅读给我自己听,我会说“ell bee into arrone from arrtwo”。我看着文本语法,我知道lb r1, r2是胡说八道,所以我不需要在心里加上“from memory at arrtwo”。如果我半随意地对另一个熟悉MIPS的人说话,我可能会大声说出来,例如,如果我是在建议一个可能的指令添加到我们正在谈论的一些代码中。(我在拼写英语字母名称的语音发音,比如arr代表R,ell代表L,bee代表B。)如果我们查看一些现有代码的上下文,如果循环或块中只有一个,我可能会说“the ell bee”,或者“the LB into arr one”。另一种阅读方式是“ell bee from arr two into arr one”。从语义上讲,我倾向于用这种方式来理解load,尽管我发现读asm时把目标放在左边更自然,就像赋值一样。(一些asm语法把目标放在最后,比如PDP-11或m68 k。或者更奇怪的是,AT&T语法用于x86,尽管供应商的语法正好相反。)也可以读作“Rone从Rtwo(内存)加载了一个符号扩展字节”,将前缀转换为中缀顺序,如R1 =(R2)。(回想一下,在MIPS中,默认值是符号扩展。lbu是零扩展加载。)如果你有一个非零的位移,比如lhu r1, 4(r2),我可能会说:“艾希你从四加二进一”。或“将无符号半字从4加arr 2加载到arr 1”。“plus”是一个很好的短单词,它明确地表示偏移量,而“from”是“4 bytes away from”中的“from”--只是“from”已经被用来谈论我们从哪里加载,而“away from”则不必要地长。
r10, (r2)
0(r2)
0
lb r1, r2
lbu
lhu r1, 4(r2)
1条答案
按热度按时间dddzy1tm1#
当你大声对其他人说话时,你通常不会只读asm语法中可发音的部分,“R10 R2”可能会和
r10, (r2)
混在一起。0(r2)
寻址模式中的0
只是一些人喜欢包含的占位符,可能是因为机器码总是有一个16位立即数位移。大声说出来,零是纯粹的混乱,对于侦听器来说,要将其“解析”回asm指令已经不是小事了。在我的脑海里阅读给我自己听,我会说“ell bee into arrone from arrtwo”。我看着文本语法,我知道
lb r1, r2
是胡说八道,所以我不需要在心里加上“from memory at arrtwo”。如果我半随意地对另一个熟悉MIPS的人说话,我可能会大声说出来,例如,如果我是在建议一个可能的指令添加到我们正在谈论的一些代码中。(我在拼写英语字母名称的语音发音,比如arr代表R,ell代表L,bee代表B。)
如果我们查看一些现有代码的上下文,如果循环或块中只有一个,我可能会说“the ell bee”,或者“the LB into arr one”。
另一种阅读方式是“ell bee from arr two into arr one”。从语义上讲,我倾向于用这种方式来理解load,尽管我发现读asm时把目标放在左边更自然,就像赋值一样。(一些asm语法把目标放在最后,比如PDP-11或m68 k。或者更奇怪的是,AT&T语法用于x86,尽管供应商的语法正好相反。)
也可以读作“Rone从Rtwo(内存)加载了一个符号扩展字节”,将前缀转换为中缀顺序,如R1 =(R2)。
(回想一下,在MIPS中,默认值是符号扩展。
lbu
是零扩展加载。)如果你有一个非零的位移,比如
lhu r1, 4(r2)
,我可能会说:“艾希你从四加二进一”。
或“将无符号半字从4加arr 2加载到arr 1”。
“plus”是一个很好的短单词,它明确地表示偏移量,而“from”是“4 bytes away from”中的“from”--只是“from”已经被用来谈论我们从哪里加载,而“away from”则不必要地长。