博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寄存器冲突的问题
阅读量:6379 次
发布时间:2019-06-23

本文共 874 字,大约阅读时间需要 2 分钟。

我们在子程序中使用的寄存器,很可能在主程序中也要使用,造成了寄存器使用上的冲突。解决的方法是,在子程序的开始将子程序中所有用到的寄存器中的内容都保存起来,在子程序返回前再恢复。可以用栈来保存寄存器中的内容。

以后,我们编写子程序的标准框架如下:

子程序开始:

      子程序中使用的寄存器入栈

      子程序内容

      子程序中使用的寄存器出栈

      返回(ret、retf)

示例:设计一个子程序,功能:将一个全是字母,以0结尾的字符串,转化成大写。

assume cs:codedata segment         db     'word',0         db     'unix',0         db     'wind',0         db     'good',0data endscode segmentstart:              mov ax,data              mov ds,ax         mov bx,0         mov cx,4 s:         mov si,bx         call capital         add bx,5         loop s         mov ax,4c00h         int 21h capital:         push cx         push si change:         mov cl,[si]         mov ch,0         jcxz ok         and byte ptr [si],11011111b         inc si         jmp short change ok:         pop si         pop cx         ret   code endsend start

 

转载于:https://www.cnblogs.com/gkp307/p/9928503.html

你可能感兴趣的文章
JDK8 Lamdba表达式转换成Map,value为null问题
查看>>
python基础===正则表达式(转)
查看>>
如何让你的SQL运行得更快
查看>>
NewLife.XCode 上手指南(五) 复杂查询
查看>>
_02特性 给方法加上注释 或者停用
查看>>
第四十一天
查看>>
java2 -宏观了解
查看>>
lucene安装配置2
查看>>
【翻译】Ext JS最新技巧——2015-1-2
查看>>
Visual Studio快捷键不能使用解决办法
查看>>
delphi调用webservice接口时返回result element expected的解决办法
查看>>
执行perl adclonectx.pl出现错误
查看>>
初识Junit
查看>>
eclipse中没有server选项无法配置Tomcat
查看>>
Python--面向对象编程
查看>>
puremvc 笔记
查看>>
[iPad初试]系统介绍及数据交互
查看>>
[Python3网络爬虫开发实战] 4-解析库的使用
查看>>
BCS--设置BDC元数据存储权限--访问被业务数据拒绝
查看>>
骑士 字符串的相关操作与内置函数(集合)
查看>>