资讯详情

第12章 用到栈的跳转(X86汇编教程)

本X86汇编教程目录 http://www.51hei.com/mcu/2619.html

用过高级语言的同学都知道.高级语言有函数概念.可以跳转到某地方执行代码计算一些东西,计算完成后可以返回原处继续执行代码.现在我们要用汇编实现这个了...嘛

方法是这样的:在跳转前,先把IP寄存器的值压入堆栈,然后跳转,计算后要返回再出栈到IP即可.是不是觉得稍微麻烦了点?其实8086提供了相关指令,帮我们轻松完成:


指令名 :CALL

指令说明 :和JMP相同,只是在跳转前会把当前地址压栈,方便返回


指令名 :RET

指令说明 :没有操作数,指令执行效果相当于POP IP,也就是返回


实例代码: JMP ART;跳转到代码开始处 AXQingLing:;这里是"AX清零函数"的起点(其实就是个标号) MOV AX,0000H;AX清零 RET;返回 START:;代码开始 MOV AX,1234H;往AX随便写个数字 CALL AXQingLing;调用"AX清零函数"(其实就是个跳转) ;代码到此结束

请把我的实例编译后放进Debug试试吧.

作业:在我的实例中增加个"BX和一起清零函数",并在我的实例中"调用AX清零"之后"调用"一次,(记得用RET返回啊...)

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台