- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
黄强 汇编 第4章基本程序设计课件
基本程序设计是使用单一结构的程序设计,它是程序设计的基础。程序有三种基本结构,即顺序结构、分支结构和循环结构。任何复杂的程序都是由基本结构组成的。因此,一定要掌握基本程序设计的方法。对于汇编语言程序设计而言,更要掌握好基本程序的设计,这是编写复杂程序的基础。; 顺序程序是最简单程序设计,这种程序不使用分支、循环结构,程序按顺序执行,只能完成相对简单的操作。限于这种特点,在进行顺序程序设计时应合理安排指令的先后顺序,以完成相应的功能。 在较为复杂的程序中,顺序程序是逐段出现,它主要完成一些简单操作或过程的准备、任务的过渡、结果的存储及程序结束等。它是程序的基本组成部分。以下以结合几个实例说明顺序程序的基本方法,它们是以后各种复杂程序设计的基础。;4.1.1 存储单元内容移位;4.1.2 乘法运算;2.用移位指令实现;3.用加法指令实现;4.1.3 屏蔽与置位; 通过逻辑运算指令也很容易实现字或字节的置位操作。一般使用逻辑或指令实现置位操作 。 例如把上例中DAT变量的高四位置1,用下面指令即实现即可: OR DAT, 0F0H;4.1.4 拆字与合字; 【例4.5】将存储单元DAT1和DAT2中分别存有两个非压缩的BCD数,将其合成一个压缩BCD数(DAT1单元为高位BCD数,DAT2单元为低位BCD数),结果存入DAT0单元。 分析:将两个单元中的BCD数合并可用加法指令与移位指令相结合的方法。其中高位BCD数可由DAT1单元数据逻辑左移4位得到;再与DAT2单元相加即可完成合并。指令如下: MOV AL,DAT0 MOV CL,4 SHL AL,CL ADD AL,DAT1 MOV DAT0,AL;4.1.5 数据与ASCII码的相互转换; 【例4.6】在字节存储单元DAT中有两位十六进制的数据为6AH,要求将该数据显示到屏幕上。 分析:要实现该十六进制数据的显示,一般是调用DOS或BIOS提供的中断,而这些中断几乎都要求将要显示的内容转换为ASCII码。以下用DOS系统功能调用的2号功能完成字符显示。程序如下: DATA SEGMENT DAT DB 6AH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ;START: MOV AX,DATA MOV DS,AX MOV DL,DAT MOV AL,DL ;暂存至AL寄存器 MOV CL,4 SHR DL,CL ADD DL,30H ;高位十六进制数据‘6’转换为ASCII码 MOV AH,02H INT 21H ;显示 MOV DL,AL AND DL,0FH ADD DL,37H ;低位十六进制数据‘A’转换为ASCII码 INT 21H ;显示 MOV AH,4CH INT 21HCODE ENDS END START ;4.1.6 简单算术运算;START: MOV AX,DATA MOV DS,AX MOV AX,C SUB AX,89H CWD ;扩展为双字 MOV CX,DX MOV BX,AX ;结果暂存至CX,BX MOV AX,A IMUL B ;求A×B ADD AX,BX ADC DX,CX ;与前面结果相加 IDIV A ;AX是商,DX是余数 MOV D,AX MOV E,DX ;保存结果 MOV AH,4CH INT 21HCODE ENDS END START;4.1.7 查表;START: MOV AX,DATA MOV DS,AX MOV AH,00H INT 16H ;输入数据 AND AL,0FH ;将ASCII码转换为数据 XOR BX,BX MOV BL,AL ;存至BX LEA SI,TABLE MOV AL,[SI+BX] ;查表 MOV RSLT,AL ;保存结果 MOV AH,4CH INT 21HCODE ENDS END START;4.2 分支程序设计;4.2.1 单重分支;【例4.9 】在存储单元DAT中存放着一位十六进制数,将其显示到屏幕上。分析:本题只需对该位十六进制数进行判断,方法同例4.6相同。程序如下: DATA SEGMENT DAT DB 0CH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA;STA
文档评论(0)