- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验2用机器指令及汇编指令编程
实验2 用机器指令和汇编指令编程
1. 预备知识:Debug的使用
前面实验中,讲了Debug一些主要命令的用法,这里,我们再补充一些关于Debug的知识。
(1) 关于D命令
从上次实验中,我们知道,D命令是查看内存单元的命令,可以用:
d 段地址:偏移地址的格式查看指定的内存单元的内容,上次实验中,D命令后面的段地址和偏移地址都是直接给出的。
现在,我们知道段地址是放在段寄存器中的,在D命令后面直接给出段地址,是Debug提供的一种直观的操作方式。D命令是由Debug执行的,Debug在执行“d 1000:0”这样的命令时,也会先将段地址1000送入段寄存器中。
Debug是靠什么来执行D命令的?当然是一段程序。
谁来执行这段程序?当然是CPU。
CPU在访问内存单元的时候从哪里得到内存单元的段地址?从段寄存器中得到。
所以,Debug在其处理D命令的程序段中,必须有将段地址送入段寄存器的代码。
段寄存器有4个:CS、DS、SS、ES,将段地址送入哪个段寄存器呢?
首先不能是CS,因为CS:IP必须指向Debug处理D命令的代码,也不能是SS,因为SS:SP要指向栈顶。这样只剩下了DS和ES可以选择,放在哪里呢?我们知道,访问内存的指令如“mov ax,[0]”等一般都默认段地址在ds中,所以Debug在执行如:“d 段地址:偏移地址”这种D命令时,将段地址送入ds中比较方便。
D命令也提供了一种符合CPU机理的格式:“d 段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子:
① -r ds
:1000
-d ds:0 ;查看从1000:0开始的内存区间中的内容
② -r ds
:1000
-d ds:10 18 ;查看1000:10~1000:18中的内容
③ -d cs:0 ;查看当前代码段中的指令代码
④ -d ss:0 ;查看当前栈段中的内容
(2) 在E、A、U命令中使用段寄存器
在E、A、U这些可以带有内存单元地址的命令中,也可以同D命令一样,用段寄存器表示内存单元的段地址。以下是3个例子:
① -r ds
:1000
-e ds:0 11 22 33 44 55 66 ;在从1000:0开始的内存区间中写入数据
② -u cs:0 ;以汇编指令的形式,显示当前代码段中的代码,0代码的偏移地址
③ -r ds
:1000
-a ds:0 ;以汇编指令的形式,向从1000:0开始的内存单元中写入指令
(3) 下一条指令执行了吗?
在Debug中,用A命令写一段程序:
mov ax,2000
mov ss,ax
mov sp,10 ;安排2000:0000~2000:000F 为栈空间,初始化栈顶。
mov ax,3123
push ax
mov ax,3366
push ax ;在栈中压入两个数据。
仔细看一下图3.18中单步执行的结果,读者发现了什么问题?
在用T命令单步执行mov ax,2000后,显示出当前CPU各个寄存器的状态和下一步要执行的指令:mov ss,ax;
在用T命令单步执行mov ss,ax后,显示出当前CPU各个寄存器的状态和下一步要执行的指令……,在这里我们发现了一个问题:mov ss,ax的下一条指令应该是mov sp,10,怎么变成了mov ax,3123?
图3.18 mov sp,10到哪里去了
mov sp,10到哪里去了?它被执行了吗?
我们再仔细观察,发现:
在程序执行前,ax=0000,ss=0b39,sp=ffee
在用T命令单步执行mov ax,2000后,ax=2000;ss=0b39;sp=ffee
在用T命令单步执行mov ss,ax 后,ax=2000;ss=2000;sp=0010
注意,在用T命令单步执行mov ss,ax 前,ss=0b39,sp=ffee,而执行后 ss=2000,sp=0010。ss变为2000是正常的,这正是mov ss,ax的执行结果。可是sp变为0010是怎么回事?在这期间,能够将sp设为0010的只有指令mov sp,10,看来,mov sp,10一定是得到了执行。
那么,mov sp,10是在什么时候被执行的呢?当然是在mov ss,ax之后,因为它就是mov ss,ax的下一条指令。显然,在用T命令执行mov ss,ax的时候,它的下一条指令mov
您可能关注的文档
- 如何将PDF文件转换为文本文件〔txtword〕汇总.doc
- 如何将微盘和二元期权强强联合.doc
- 如何将PPT及音乐放在一起.doc
- 如何工作〔4发现需求〕.doc
- 如何建立及管理知识型的精益员工团队.doc
- 如何学好直线和圆的位置关系.doc
- 如何快速将毕业论文的数字及字母都改成TimeNewRoman格式.doc
- 如何将PDF文档转换成可复制的word〔txt〕文档.doc
- 如何批量将文件〔照片〕按序号〔数字〕排列更改名字.doc
- 如何把握《生活与哲学》的教学与备考〔陈文明〕.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 党课讲稿:坚持以人民为中心的发展思想.doc VIP
- 幼儿园 中班数学《排排队—高矮长短排序》.pptx VIP
- (高清版)B-T 7025.1-2023 电梯主参数及轿厢、井道、机房的型式与尺寸 第1部分Ⅰ、Ⅱ、Ⅲ、Ⅵ类电梯.pdf VIP
- 房屋租赁合同--2.doc VIP
- 2023星闪无线短距通信技术(SparkLink1.0)产业化推进白皮书.docx
- 大学生就业教育主题班会.pptx
- 2023届合肥高三二模作文“言与行”导写及范文.docx
- 《网络信息辨真假》(共12张PPT).pptx VIP
- 党纪学习教育六大纪律研讨发言提纲.docx VIP
- 湘少版小学英语修订教材解读.pptx VIP
文档评论(0)