44 汇编语言程序的上机过程.ppt

  1. 1、本文档共214页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
44 汇编语言程序的上机过程

【例4-10】 从键盘接收字符串并输出到显示器。 DATA SEGMENT BUFSIZE DB 25 ACTCHAR DB ? CHARTEXT DB 50 DUP(20H) DB $ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DS MOV DS,AX MOV DX,OFFSET BUFSIZE MOV AH,0AH INT 21H ;键入字符串,放入缓冲区 MOV DX,OFFSET CHARTEXT MOV AH,09H INT 21H ;显示键入的字符串 HLT CODE ENDS END START (3) 打印机输出。关于打印机操作的系统功能调用只有一种,即打印一个字符的功能5。利用此功能还可以改变打印机的打印方式。下面一段程序将EPSON-80打印机设置为“加重打印”方式。 【例4-11】 打印机设置为“加重打印”方式。 DATA SEGMENT STR DB 1BH,45H ;“加重打印”的控制码 CODE SEGMENT … … MOV CX,2 MOV AH,5 LEA BX,STR PRINT: MOV DL,[BX] INT 21H INC BX LOOP PRINT … 这段程序既可以放在用户程序中,也可以作为一个独立的文件,经汇编、连接后单独运行。若要取消加重打印方式,或设置其他方式,只需与之类似的程序段即可。相应的控制码请查阅打印机手册。 4.5.4 宏汇编 在程序设计中,为了简化程序的设计,将多次重复使用的程序段用宏指令代替。宏指令是指程序员事先定义的特定的“指令”,这种“指令”是一组重复出现的程序指令块的缩写和替代。宏指令定义以后,凡在宏指令出现的地方,宏汇编程序总是自动地把它们替换成对应的程序指令块。宏指令有时也称为宏,包含有宏定义和宏调用。 宏指令的特点:简化源程序的编写,汇编语言编程的参数传递特别灵活,功能更强。 1. 宏指令定义 宏是源程序中的一段具有独立功能的程序代码。它只要在源程序中定义一次,就可以多次调用,调用时只要使用一个宏指令语句就可以了。宏指令定义由开始伪指令MACRO、宏指令体、宏指令定义结束伪指令ENDM组成。格式如下: 宏指令名 MACRO [形式参数1,形式参数2,…,形式参数N] ;宏指令体(宏体) ENDM … 其中,宏指令名是宏定义为宏体程序指令块规定的名称,可以是任一合法的名字,也可以是系统保留字(如指令助记符、伪指令操作符等),当宏指令名是系统保留字时,则该系统保留字就被赋予新的含义,从而失去原有的意义。MACRO语句到ENDM语句之间的所有汇编语句构成宏指令体,简称宏体,宏体中使用的形式参数必须在MACRO语句中列出。 形式参数是出现在宏体内某些位置上可以变化的符号,也可以是任一合法的名字,甚至是寄存器名。如果形式参数中使用某些寄存器名,那么在宏汇编展开时,将不认为这些寄存器名是寄存器本身,而是形式参数,并被实际参数所代替。形式参数可以缺省,也可以有一个或多个。当形式参数多于一个时,形式参数之间用逗号隔开,形式参数个数每行应小于等于132个字符。宏指令定义一般放在源程序的开头,以避免产生不应发生的错误。 宏指令必须先定义后调用(引用)。宏指令可以重新定义,也可以嵌套定义。嵌套定义是指在宏指令体内还可以再定义宏指令或调用另一宏指令。 2. 宏调用 宏指令一旦定义后,就可以用宏指令名字(宏名)来调用(或引用)。宏调用的格式为 宏指令名 实际参数1,实际参数2,…,实际参数N 其中,实际参数的类型和顺序要与形式参数的类型和顺序保持一致,宏调用时将一一对应地替换宏指令体中的形式参数。当有两个以上参数时,中间用逗号、空格或制表符隔开。宏指令调用时,实际参数的数目并不一定要和形式参数的数目一致,当实参个数多于形参的个数时,忽略多余的实参;当实参个数少于形参个数时,多余的形参用空串代替。 【例4-12】 定义一条INOUT宏指令,既可以引用它输入一串字符,也可引用它显示一串提示字符。 宏定义: INPUT MACRO ;定义一条从键盘输入一个字符的宏指令INPUT MOV AH,1 ;采用宏指令语句INPUT编程,类似于高级语言语句 INT 21H ENDM LF MACRO ;定义一条换行宏指令LF MOV DL,10 MOV AH,2 INT 21H ENDM CR MAC

您可能关注的文档

文档评论(0)

wujianz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档