本文主要是介绍《汇编语言》学习(十)call and ret,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《汇编语言》第十章主要介绍CALL和RET指令的原理。本文我将用一张知识图谱总结它的知识点,然后重点展示它的各个课后习题。
1,知识图谱
CALL和RET是为函数调用和函数返回准备的一对汇编指令。他们都借助“栈空间”来存储或获取转移的目标地址。
2,习题
检测点10.1
assume cs:codestack segmentdb 16 dup(0)
stack endscode segmentstart:mov ax,stackmov ss,axmov sp,10hmov ax,1000hpush axmov ax,0push axretf
code endsend start
检测点10.2
内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0
1000:3 e8 01 00 call s
1000:6 40 inc ax
1000:7 58 s:pop ax
该程序执行后,ax中的值为“6”
它的运行流程是:mov ax,0,此时ax=0 -> call s,读取该条指令后,IP=6,执行该指令,IP压栈,程序跳转位移为“0001h”,即跳过一个字节,从1000:6跳到1000:7 -> pop ax,出栈&
这篇关于《汇编语言》学习(十)call and ret的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!