深入理解计算机系统 第三章 程序的机器级表示(2)

循环

  do-while循环
    do
        body-statement
        while(test-expr);
  这个循环的效果就是重复执行body-statement,对于test-expr求值,如果求值的结果为非零,就继续循环。可以看到,body-statement至少会执行一次。
  while循环
    while(test-expr)
        body-statement
  与do-while的不同之处在于,在第一次执行body-statement之前,它会对test-expr求值,循环有可能就中止了。
  for循环
    for(init-expr;test-expr;update-expr)
        body-statement
switch语句
  switch(开关)语句可以根据一个整数索引值进行多重分支(multiway branching)。
提供对过程的机器级支持,包括下面一个或多个机制:
  传递控制。
  传递数据。
  分配和释放内存。
运行时栈,过程调用机制使用了栈数据结构提供的后进先出的内存管理原则。程序可以用栈来管理它的过程所需要的存储空间,栈和程序寄存器存放着传递控制和数据、分配内存所需要的信息。
转移控制
数据传送
栈上的局部存储,一般来说,过程通过减小栈指针在栈上分配空间。
寄存器中的局部存储空间,当一个过程(调用者)调用另一个过程(被调用者)时,被调用者不会覆盖调用者稍后会使用的寄存器值。
递归过程
数组分配和访问
  指针运算
  嵌套的数组
  定长数组
  变长数组
posted @ 2019-09-29 20:20  止水于石  阅读(129)  评论(0编辑  收藏  举报