b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

被调用过程 2017-2018-1 学号20155209 《信息安全系统设计基础》第十三周学习总结(5)

电脑杂谈  发布时间:2017-12-18 06:03:52  来源:网络整理

e->(SF^OF)|ZF(有符号的小于等于):le是less equals的意思。有了前面小于的基础,这里就很容易理解了。SF^OF代表小于,ZF代表等于,因此两者的“或运算”则代表小于等于。

g->~(SF^OF)&~ZF(有符号的大于):g是greater的意思。这里的组合是~(SF^OF)&~ZF,相对来说就比较复杂了。不过有了前面的铺垫,这个也非常好理解。SF^OF代表小于,则~(SF^OF)代表大于等于,而~ZF代表不等于,将~(SF^OF)与~ZF取“与运算”,则代表大于等于且不等于,也就是大于。

ge->~(SF^OF)(有符号的大于等于):ge是greater equals的意思。

b->CF(无符号的小于):b是below的意思。CF是无符号溢出标志,这里的意思是指如果a-b结果溢出了,则代表a是小于b的,即a<b。其实这个结论很显然,关键点就在于,无符号减法只有在减出负数的时候才可能溢出,也就是说只要结果溢出了,那么一定有a-b<0。因此这个结论就显而易见了。

be->CF|ZF(无符号的小于等于):这里是below equals的意思。因此这里会与ZF计算“或运算”,字面上也很容易理解,即CF(小于)|(或)ZF(等于),也就是小于等于。

a->~CF&~ZF(无符号的大于):a代表的是above。这个组合也是非常好理解的,CF代表小于,则~CF代表大于等于,~ZF代表不等于,因此~CF&~ZF则代表大于等于且不等于,即大于。

e->~CF(无符号的大于等于):ae是above equals的意思。比如对于setae %al指令来说,%al是%eax寄存器中的最后一个字节,这个指令的含义是,将~CF的值设置到%eax寄存器的最后一个字节。

过程是软件中一种很重要的抽象。他提供了一种封装代码的方式,用一组指定的参数和一个可选的返回值实现了某种功能。然后,可以在程序中不同的地方调用这个函数。

过程机制的构建需要实现下面的一到多个机制。

传递控制:在进入过程Q的时候,程序计数器必须被设置为Q代码的起始位置,然后返回时,要把程序程序计数器设置为调用的那一条语句。

传递数据:P必须向Q传递n个参数,Q必须向P返回一个值。

分配和释放内存:在开始是,Q可能需要为局部空间分配内存,而在返回之前必须释放掉这些存储空间。

x86-64的过程实现包括特殊的指令和一些对机器资源使用的约束。

运行时的栈

当x86-64过程需要的存储空间超出寄存器能够存放的大小时,就会在栈上分配空间(栈帧)。下图给出了运行是栈的通用结构,包括划分“栈帧”。当前正在执行的过程的栈帧总是在栈顶。

当过程P调用过程Q时,会把返回的地址压入P的栈帧中,指明当Q返回时,P从哪里开始执行。

Q的代码会扩展当前栈的边界,分配他的栈帧所需要的空间,在这个空间,它可以保存寄存器的值,分配局部变量的空间,为调用过程设置参数。当Q运行时,P以及所有在向上追溯到P的调用链中的过程都是被挂起的,同时此时Q的栈帧在栈顶。

为了提高空间和时间的效率,许多过程有6个或者更少的参数,那么所有参数都保存在寄存器中。

转移控制

转移控制的实现需要上面两条汇编指令的支持。P调用个过程Q,执行call Q指令,该指令会把调用过程的下一条指令A保存在P的栈帧中,并把PC寄存器设置为Q的起始位置。对应的指令会将PC设置为A,并将A弹出P的栈帧。

数据传送

当调用一个过程的时候,除了要把控制传递给调用过程,调用还需要把数据作为参数传递过去,调用过程可能返回一个值。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-54154-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...