欢迎来到天天文库
浏览记录
ID:41360324
大小:966.06 KB
页数:40页
时间:2019-08-22
《微机原理第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.2.5过程定义伪指令格式:<过程名>PROC[类型]…RET<过程名>ENDP过程就是子程序。一个过程可以被其它程序所调用(用CALL指令),或用JMP指令跳转到该处执行。1①过程名:过程入口的符号地址,过程名必须相同。过程体内至少要有一条返回指令(RET)。②近过程:NEAR(默认类型),可省略,表示段内调用。远过程:FAR,不可省略,表示段间调用。③调用一个过程的格式为:CALL<过程名>④过程可嵌套、递归。2例如①MAINPROCFAR……RETMAINENDP②NAME1PROCFAR……CALLNAME2……RETNAME2PROC……RETNAME2ENDPN
2、AME1ENDP34.2.6宏命令伪指令如果需要多次使用同一个程序段,可以将这个程序段定义为一个宏命令,然后在需要时,可简单地用宏命令名来代替这个程序段。指令的格式为:宏命令名MACRO[形参表]<宏定义体>ENDM4注意:①宏定义结束符前不加宏命令名②形参可为任意个,之间用逗号隔开。③宏命令调用格式:宏命令名实参④用实参顺序代替形参,若实参多于形参,则多余的实参被忽略。5例如:宏定义为:DisplayMACROsomethingLEADX,somethingMOVAH,9INT21HENDM……程序中宏调用:DISPLAYERROR_MESSAGEDISPLAYEXIT_M
3、ESSAGE……宏展开:汇编程序会把宏调用按宏定义展开。6汇编后的结果:LEADX,ERROR_MESSAGEMOVAH,9INT21HLEADX,EXIT_MESSAGEMOVAH,9INT21H……7例:两个数之和的宏定义和宏调用。宏定义为:DADDMACROX,Y,ZMOVAX,XADDAX,YMOVZ,AXENDMX、Y、Z是形式参数。调用宏DADD时可写为:DADDDATA1,DATA2,SUMDATA1,DATA2,SUM是实际参数,由它们替换定义中的X、Y、Z。8参数可以是1个,2个或多个SHIFTMACROCN,RMOVCL,CNSHLR,CLENDM调用:①
4、SHIFT4,AX②SHIFT6,BL执行操作:①将AX逻辑左移4次②将BL逻辑左移6次9形参不仅可以出现在操作码,还可以是操作码的一部分①SHIFTMACROX,Y,ZMOVCL,XS&ZY,CLENDM宏调用:SHIFT8,BX,AL执行操作:将BX算术左移8次10②宏定义:PUSH—ALLMACROPUSHAXPUSHBXPUSHFENDM宏调用:PUSH—ALL,就相当于连续执行了以上三条指令。11③SHIFTMACROX,YMOVCL,XSHLY,CLENDM宏调用:SHIFT3,AL相当于MOVCL,3SHLAL,CL12④SHIFT1MACROX,Y,ZMOVC
5、L,XS&ZY,CLENDM1)BX,算术左移,7次宏调用:SHIFT17,BX,AL2)BH,逻辑右移,4次宏调用:SHIFT14,BH,HR13DATASEGMENTNUMDW5678HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:MOVAX,DATAMOVDS,AXMOVAX,NUMSHIFT12,AX,HLRETMAINENDPCODEENDSENDSTART⑤将AX中数5678H乘以4144.2.7模块定义与连接伪指令编写较大程序时,将其划分为几个独立模块。开始:用NAME/TITLE为模块定义名字
6、结尾:用END结束1.NAME模块名用于为汇编后得到的目标程序命名2.TITLE标题名为程序清单每一页指定打印标题3.END【标号】表示源程序到此结束,指示汇编程序停止汇编。154.3DOS功能调用系统功能调用——由OS提供的一组实现特殊功能的子程序,供程序员在程序中调用,以减轻编程工作量。系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。用户程序在调用这些系统服务程序时,不是用CALL命令,而是采用软中断指令INTn来实现。在DOS系统中,功能调用都是用软中断指令INT21H来实现的。16D0S系统功能调用的使用方法如下①AH←功能号;②设置该功能所要
7、求的其他入口参数;③执行INT21H指令;分析出口参数。以下介绍INT21H的几个最常用的功能。17关于数据输入和输出指键盘输入和显示器输出,DOS功能调用需要提供入口参数及所调用的功能号,调用结束返回结果。181.DOS键盘功能调用(1)从键盘输入单字符(功能号01H)格式:MOVAH,01HINT21H功能:将键盘输入的单个字符的ASCII码送入AL,并将该字符显示在在屏幕上。19例:程序中有时需要用户对提示做出应答。GET_KEY:MOVAH,1;等待键入字符INT21H;结果在AL中CMPAL,
此文档下载收益归作者所有