找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 121|回复: 0

1.8--第1章1.10~1.11节的重点难点和答疑

[复制链接]

640

主题

342

回帖

1135

积分

管理员

积分
1135
发表于 2026-3-31 08:58:18 | 显示全部楼层 |阅读模式

第一章很基础很重要,而本单元是第一章的重点,也就是重中之重,因为它解释了


  • 为什么会发明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。标号只是程序中的一个符号,用来计算和代表地址,由编译器在编译程序的时候使用,在程序编译后就消失了。换句话说,指令③有没有标号是一样的,有没有标号,编译后的机器代码是一样的,但指令⑥会将标号代表的数值(地址)编译进机器指令中,毕竟是跳转目标嘛。


对这一部分内容有任何疑问的,可以下面提出,与其他同学共同探讨。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-4-21 18:50 , Processed in 0.265247 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表