汇编语言程序设计(四子程序).ppt
《汇编语言程序设计(四子程序).ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计(四子程序).ppt(23页珍藏版)》请在第壹文秘上搜索。
1、 子程序子程序是程序的一部分,是完成特定功能特定功能的程序段,它能够在程序的任何地方被调用。在使用子程序时应注意: (1)参数的传递。参数的传递。子程序调用时,经常需要将一些参数传给子程序,而子程序也常常需要在运行后将结果和状态等信息回送给调用程序。这种子程序和调用程序之间的信息传送,就是参参数传递数传递。参数的传递可通过寄存器、变量、地址表、堆栈等方式进行。 (2)相应寄存器内容的保护相应寄存器内容的保护。由于CPU寄存器数量有限,子程序要用到的一些寄存器常在调用程序中也被用到,为了防止破坏调用程序中寄存器的内容,需在子程序入口处将所用到的寄存器内容压入堆栈保存; (3)子程序还可以调用别的
2、子程序子程序还可以调用别的子程序,即子程序嵌套子程序嵌套。 与子程序调用有关的CPU指令有:CALL和RET;伪指令有:PROC和ENDP。1.实验目的: 掌握汇编语言子程序及功能调用结构、指令及调用方法。 学习二进制数转换为十六进制数并显示的方法。2.实验内容: 掌握子程序的编程格式: 子程序名子程序名 PROC NEAR/FAR(子程序属性) RET 子程序名子程序名 ENDP。 编写一个子程序,把一个16位二进制数二进制数用十六进制十六进制形式在屏幕上显示出来。 分别运用如下2种参数传递方法,并用一个主程序验证它。 采用AX寄存器传递这个16位二进制数。 。 采用wordTEMP变量传递
3、这个16位二进制数。 3.实验用设备仪器及材料: 硬件:计算机 软件:DEBUG调试软件。4.实验要求: 能在DEBUG提示符下,编写简单的汇编程序。 熟练掌握修改寄存器、存储单元的方法,理解段地址段地址、偏移量偏移量的表达方式。5.实验步骤:实验步骤:用文件编辑器编写汇编语言程序(如:记事本),并以asm为后缀命名, 如:2.asm 运行masm编译器进入dos,调入所编写的汇编程序,生成2.obj,然后用 link.exe连接2.obj文件,生成可执行文件2.exe. 用DEBUG调用2.exe文件,格式为DEBUG 2.EXE 用D命令观察内存单元值用U命令观察源程序 用G命令运行程序
4、用T命令单步执行程序用R命令观察或修改寄存器内的值 6.实验报告: 同学要对本次实验课的内容加以总结,并写出自己对本次实验的体会和 收获。 实验报告格式: 实验名称 实验材料 实验步骤 实验总结 实验原理:实验原理: AX中16位二进制数对应4位十六进制数,先转换最高4位成ASCII码并显示(循环左移4位,使最高4位移到AL的低四位,使AL高4位为0,等待处理,注意事先保存原AX值,防止丢失),然后转换次高四位并显示,以此类推。最后显示“H”(表示16进制) 1位十六进制(对应4位二进制)转换为ASCII码原理如下: 将获得的16进制数与9H比较: 若9H,则先加上30H,再加上07H,才为该
5、数的ASCII码。 高四位次高次低低四位0481215AXAX循环左移4位 ROL AX,CLDL次高次低低四位 高四位高四位低四位次高次低DHDL高四位低四位屏蔽DL高4位 AND DL,0FHDL高四位0高四位3高四位3判DL低4位DL39HDL39H,DL+07HDL内的数送显示显示功能调用AH=02H,DL=数,INT 21HDL+30保存AX中的数DXASCII码对照表:码对照表: BinDecHex缩写缩写/字符字符0010111147 2F/ 0011000048 3000011000149 311 0011001050 32 20011001151 333 0011010052
6、 34 40011010153 355 00110110543660011011155 37 7 0011100056 388 0011100157 39 90011101058 3A: 00111011593B;0011110060 3C 0011111163 3F ?0100000064 40 010000016541A0100001066 42 B 010000116743C0100010068 44 D 010001016945E010001107046 F低低10位位 高高6位位 实验参考程序实验参考程序1(寄存器传递参数寄存器传递参数):data segment wordtemp
7、dw 105Eh ;也可用也可用二进制表示二进制表示 0001 0000 0101 1110bdata endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov ax,wordtemp call ALdisp mov ax,4c00h ;设置功能调用设置功能调用 AH=4C 带返回码结束 int 21h ALdisp proc ;实现实现al内容显示的内容显示的子程序子程序 push ax ;过程中使用了过程中使用了AX、BX、CX和和DX,寄存器内容压栈保护数据。寄存器内容压栈保护数据。 push bx p
8、ush cx push dx mov bx,4 ;设置设置移动次数,存放移动次数,存放ASCII码地址首地址码地址首地址 a1: mov cl,4 ;设置左移位数设置左移位数 rol ax,cl ;循环左移循环左移 push ax;暂存暂存ax里的数据,里的数据,DOS功能会改变功能会改变AL内容内容 mov dl,al;转换转换al的高的高4位位 and dl,0fh ;将将dl中的高中的高4位清零位清零 or dl,30h;dl高高4位变成位变成3 cmp dl,39h jbe aldisp1 ; dl内的数小于等于内的数小于等于39h转移转移 add dl,7;是是0Ah0Fh,还要加上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 子程序