Skip to content
This repository has been archived by the owner on Aug 28, 2021. It is now read-only.

Latest commit

 

History

History
37 lines (34 loc) · 1.37 KB

QA10.md

File metadata and controls

37 lines (34 loc) · 1.37 KB

Q&A 10


switch多分支,case条件码规律时是怎么实现的?(注意我们讲的与书上不同,看下不同在哪儿?)

主要采用的数据结构是什么?

跳转表

跳转表的元素类型?(不同)

一个代码段的地址

跳转表的元素个数怎么计算?

跳转元素的最大可能值-最小可能值

跳转表的初值是什么?什么时候由谁来赋初值的?

没看懂

元素下标怎么计算?

跳转元素-跳转元素最小可能值

怎么计算跳转地址?

当下标在跳转表中时,跳转地址=基地址+下标*8

跳转指令是什么寻址方式?

变址寻址


叶子节点与非叶子节点的函数汇编语言实现有什么区别?

叶子节点的函数无需使用push,pop等保存,传递参数,也无需使用call调用其他函数,但非叶子节点的函数需要


递归程序的汇编语言是怎么实现的?

递归无需特殊的处理 栈帧意味着每个函数调用私有的存储 保存的寄存器 、局部变量 保存的返回地址 寄存器保存约定: 防止函数调用损毁其他函数(调用)的数据 除非C代码明确地这样做(如缓冲区溢出) 栈的使用原则:遵循 调用/返回 模式 如 P调用Q, 然后Q 在P结束之前返回 后入、先出 对互递归同样有效 P调用Q; Q调用P