CALL  标号:

1.指令加载进指令缓冲器

2.(IP)=(IP)+3(CALL 标号所占字节)

3.(SP)=(SP)-2

4.IP的值入栈((SS)*16+SP)=(IP)

5.IP跳转至标号行偏移地址

6.执行CS:IP

RET

1.指令加载进指令缓冲器

2.(IP)=((SS)*16+SP)

3.(SP)=(SP)+2

4.执行CS:IP

程序设计结构:

ASSUME CS:CODE,SS:STACKSTACK SEGMENT  ;建立栈空间...
STACK ENDSCODE SEGMENT
MAIN:          ;主函数...CALL SUB1 ;执行子函数SUB1. .MOV AX,4C00H ;退出程序INT 21HSUB1:..CALL SUB2 ;执行子函数SBU2..RET  ;函数返回
SUB2:..RET  ;函数返回
CODE ENDS
END MAIN

例如,实现在窗口打印的子函数

ASSUME CS:T22,SS:STACK,DS:DATASTACK SEGMENTDB 16 DUP (16)
STACK ENDSDATA SEGMENTDB 16 DUP (16)
DATA ENDST22 SEGMENT
MAIN:MOV AX,STACKMOV SS,AXMOV SP,16MOV AX,DATAMOV DS,AXMOV CX,16      ;将需要打印的数据放在DATAMOV BX,0
S:MOV BYTE PTR DS:[BX],1H INC BX
LOOP SCALL PRINTMOV AX,4C00H ;退出程序INT 21H
PRINT:MOV AX,0B800HMOV ES,AXMOV BX,0MOV CX,16MOV SI,0
S0:MOV AL,DS:[BX]  ;从DATA中读出,加载进显示缓冲区第0页ADD AL,96       ;ASCIIMOV AH,02H      ;黑底绿色字MOV ES:[SI+0A0H],AXINC BXADD SI,2
LOOP S0RET
T22 ENDS
END MAIN

利用call与ret实现段内子函数相关推荐

  1. python里面的内置函数_【python】函数之内置函数

    今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print ...

  2. inline内联函数

    inline 内联函数和普通函数的区别: 1.inline内联函数:在编译过程中,就没有函数的调用开销了,在函数的调用点直接把函数的代码进行展开处理 2.inline 函数不再生成相应的函数符号 in ...

  3. linux 循环显示所有的sh.*文件.,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法...

    环境: Ubuntu下采用shell脚本实现 案例简述:文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为 ...

  4. linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...

    本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...

  5. 怎么利用Excel统计各分数段的人数?(亲测sum函数可用)

    每当考试阅卷结束后,老师们都要对考试成绩进行统计,而统计各分数段人数是其中必不可少的一部分.那么怎么快速对各分数段人数进行统计呢?下面我就跟大家分享几个简便的方法. 工具/原料 Excel 2010 ...

  6. 统计各个分数段的人数python_怎么利用Excel统计各分数段的人数

    匿名用户 1级 2016-12-27 回答 方法1(利用FREQUENCY函数): 1 以下图的"六年级学生语文成绩表"为例,我们首先设置分数段,因为成绩中有小数点后第一位,所以我 ...

  7. 【查找各日期段内的银行贷款利率问题】

    数据表TB(发布日期.存款利率.贷款利率)存有银行分布的历次一年期贷款利率.例如: (非真实数据): 为方便获得每天的一年期银行贷款利率,我们设计了如下数据表TD(起始日期,截止日期,存款利率.贷款利 ...

  8. 关于“物理地址=段基址x16+段内偏移地址”

    以8086为例. 1.段基址和段内偏移地址都是16位(8086仅有16位数据总线):物理地址是20位(8086有20位地址总线). 2.由于段内偏移地址是16位,所以每个段最大2^16,即0xFFFF ...

  9. GDT 表与段选择子等解析

    来源:https://blog.csdn.net/qq_37653144/article/details/82821540 https://blog.csdn.net/yeruby/article/d ...

  10. 【汇编】转移指令——offset 标号、jmp无条件转移,段内/段间转移区别、段内近转移/段内短转移、jcxz指令、loop指令

    多种转移指令详解 9.1 转移 综述 9.2 offset 标号 9.3 jmp指令 段内/段间转移区别 段内短转移与近转移 jmp小结 9.4 jcxz 9.5 loop 9.1 转移 综述 转移按 ...

最新文章

  1. file类打印目录---树状结构,递归
  2. 交换基本数据类型的方法swap,并影响到主方法
  3. 【洛谷】P1388 算式(dp)
  4. mysql主从同步测试_mysql 主从同步测试
  5. 输出某个目录下的所有文件和文件夹,包括子文件夹中的内容
  6. 联想EDU同传系统 版本7.5 7.6在机房中出现的一些故障和解决办法
  7. scrapy如何指定生成python3的项目_如何把阿里图标库的图标生成代码并应用于自己的项目...
  8. error connection reset by peer 104
  9. android camera滑动,Android怎么实现小米相机底部滑动指示器
  10. DeepLearningAI 学习笔记 1.3 浅层 logistic 神经网络
  11. 红帽企业 Linux 下载
  12. 分布式为什么使用python
  13. nginx反向代理解决跨域
  14. inux快速修改文件夹及文件下所有文件与文件夹权限
  15. 穷学生自白:爱情如此奢侈 穷孩子哪有爱的能力
  16. 看ftp服务器文件日期,ftp查看服务器当前日期
  17. webrtc QOS方法四(Sender Side BWE)
  18. 什么样的域名能卖出去并卖个好价格
  19. 农用地转为建设用地审批(农转用审批)
  20. Armijo-Goldstein准则及Wolfe-Powell准则

热门文章

  1. 查询GPU时无进程运行,但是显存却被占用了
  2. public static void main解释
  3. hbase snappy 安装_Hadoop HBase 配置 安装 Snappy 终极教程
  4. ORACLE归档日志详解
  5. c++win32项目 如何显示后再删除一个绘图_如何运用Excel,R等软件结合PPT做出你想要的矢量图...
  6. IOS学习笔记-加速度传感器(重力感应)-UIAccelerometer
  7. 什么是X86和X86-64
  8. Golang验证身份证号码是否有效
  9. 京东商品列表API接口-(item_search-按关键字搜索京东商品API接口),京东API接口
  10. C语言之打印错误信息