|
第一章很基础很重要,而本单元是第一章的重点,也就是重中之重,因为它解释了
- 为什么会发明C语言,它的特点;
- 一些C语言的基本概念和基本术语。
在1.10节中,关于标号的作用和标号的使用着墨不多,不排除有些读者会有疑问,现补充解释如下。先来看书中的汇编代码:
mov r0, 1 ①
mov word [200], 0 ②
again: add [200], r0 ③
add r0, 1 ④
cmp r0, 100 ⑤
jle again ⑥
在这段代码中,每一条汇编语言指令都有自己的地址,这个地址的数值是相对于这段代码的第一条指令的地址的。如果指令①的地址是200,这条指令的长度是3,指令②的长度是3,则指令③的地址就是200+3+3=206。指令③带有标号“again”,则这个标号代表数值206。指令⑥是跳转到标号again处的,所以是跳转到地址206处执行,这条转移指令的操作数是206。标号只是程序中的一个符号,用来计算和代表地址,由编译器在编译程序的时候使用,在程序编译后就消失了。换句话说,指令③有没有标号是一样的,有没有标号,编译后的机器代码是一样的,但指令⑥会将标号代表的数值(地址)编译进机器指令中,毕竟是跳转目标嘛。
对这一部分内容有任何疑问的,可以下面提出,与其他同学共同探讨。
|