《汇编语言讲稿》PPT课件.ppt
《《汇编语言讲稿》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汇编语言讲稿》PPT课件.ppt(36页珍藏版)》请在三一办公上搜索。
1、汇编语言课件,第6章 包含多个段的程序,6.1 在代码段中使用数据6.2 在代码段中使用栈6.3 将数据、代码、栈放入不同的段,引言,前面我们写的程序中,只有一个代码段。现在有一个问题是:如果程序需要用其他空间来存放数据,我们使用哪里呢?,引言,第5章中,我们讲到要使用一段安全的空间。可哪里安全呢?第5章中,我们说0:2000:300是相对安全的;可这段空间的容量只有256个字节,如果我们需要的空间超过256个字节该怎么办呢?,引言,对于使用多个段的问题,我们先简单说到这里,下面我们将以这样的顺序来深入地讨论多个段的问题:(1)在一个段中存放数据、代码、栈,我们先来体会一下不使用多个段时的情况
2、;(2)将数据、代码、栈放入不同的段中。,6.1 在代码段中使用数据,考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H。在前面的课程中,我们都是累加某些内存单元中的数据,并不关心数据本身。可现在我们要累加的就是已经给定了数值的数据。,6.1 在代码段中使用数据,assume cs:codesgcodesg segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h mov bx,0mov ax,0mov cx,8 s:add
3、ax,cs:bxadd bx,2loop smov ax,4c00hint 21hcodesg endsend,程序6.1,6.1 在代码段中使用数据,解释一下,程序第一行中的“dw”的含义是定义字型数据。dw即define word。在这里,我们使用dw定义了8个字型数据(数据之间以逗号分隔),它们所占的内存空间的大小为16个字节。,6.1 在代码段中使用数据,程序中的指令就要对这8个数据进行累加,可这8个数据在哪里呢?由于它们在代码段中,程序在运行的时候CS中存放代码段的段地址,所以我们可以从CS中得到它们的段地址。,6.1 在代码段中使用数据,这8个数据的偏移地址是多少呢?因为用dw定义
4、的数据处于代码段的最开始,所以偏移地址为0,这8 个数据就在代码段的偏移0、2、4、6、8、A、C、E处。程序运行时,它们的地址就是CS:0、CS:2、CS:4、CS:6、CS:8、CS:A、CS:C、CS:E。,6.1 在代码段中使用数据,程序中,我们用bx存放加2递增的偏移地址,用循环来进行累加。在循环开始前,设置(bx)=0,cs:bx指向第一个数据所在的字单元。每次循环中(bx)=(bx)+2,cs:bx指向下一个数据所在的字单元。,6.1 在代码段中使用数据,我们将前面的程序6.1编译、连接为可执行文件p61.exe,先不要运行,我们用debug加载查看一下。,6.1 在代码段中使用
5、数据,用 Debug加 载后,我们可以将 IP 设置为10h,从而使CS:IP指向程序中的第一条指令。然后再用T命令、P命令、或者是G 命令执行。可是这样一来,我们就必须用Debug 来执行程序。程序 6.1 编译成可执行文件后,在系统中直接运行可能会出现问题,因为程序的入口处不是我们所希望执行的指令。,6.1 在代码段中使用数据,如何让这个程序在编译后可以存系统中直接运行呢?我们可以在源程序中指明界序的入口所在,具体做法见下面的程序6.2。程序代码,6.1 在代码段中使用数据,assume cs:codesgcodesg segmentdw 0123h,0456h,0789h,0abch,0
6、defh,0fedh,0cbah,0987h start:mov bx,0 mov ax,0 mov cx,8 s:add ax,cs:bx add bx,2 loop s mov ax,4c00h int 21hcodesg endsend start,程序6.2,6.1 在代码段中使用数据,注意在程序6.2中加入的新内容,我们在程序的第一条指令的前面加上了一个标号start,而这个标号在伪指令end的后面出现。,6.1 在代码段中使用数据,探讨end的作用:end 除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。,6.1 在代码段中使用数据,有了这种方法,我们就可以这样来安
7、排程序的框架:,assume cs:codecode segment:数据:start:代码:code endsend start,6.2 在代码段中使用栈,完成下面的程序,利用栈,将程序中定义的数据逆序存放。assume cs:codesg codesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h?code ends end程序大致思路,6.2 在代码段中使用栈,程序的思路大致如下:程序运行时,定义的数据存放在cs:0cs:15单元中,共8个字单元。依次将这8个字单元中的数据入栈,然后再依次出栈到这 8 个字单元中,从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言讲稿 汇编语言 讲稿 PPT 课件
链接地址:https://www.31ppt.com/p-5585136.html