文档详情

第03章 汇编语言程序设计1_顺序结构程序设计.ppt

发布:2017-06-21约2.45千字共15页下载文档
文本预览下载声明
顺序结构程序设计 汇编语言的特点 汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序 在有些应用领域,汇编语言的作用是不容置疑和无可替代的 汇编程序设计的过程与其他高级语言程序设计大致相同 顺序程序设计 没有分支、循环等转移指令的程序,会按指令书写的前后顺利依次执行,这就是顺序程序 顺序结构是最基本的程序结构 完全采用顺序结构编写的程序并不多见 例1:数据段 ;数据段 ASCII db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h ;对应0 ~ 9的ASCII码 db 41h,42h,43h,44h,45h,46h ;对应A ~ F的ASCII码 hex db 04h,0bh ;假设两个数据 例1:代码段 ;代码段 mov bx,offset ASCII ;BX指向ASCII码表 mov al,hex ;AL取得一位16进制数 ;恰好就是ASCII码表中的位移 and al,0fh ;只有低4位是有效的,高4位清0 xlat ;换码:AL←DS:[BX+AL] 例1:代码段(续) mov dl,al ;入口参数:DL←AL mov ah,2 ;02号DOS功能调用 int 21h ;显示一个ASCII码字符 mov al,hex+1 ;转换并显示下一个数据 and al,0fh xlat mov dl,al mov ah,2 int 21h 顺序结构程序举例 例2、计算y=-x。设x为三个字节长的数据,存于DATA1开始的单元。结果存入DATA2开始的单元。 设置堆栈指针 MOV SP,SIZE STK MOV AL,DATA1 MOV AH,DATA1+1 MOV BL,DATA1+2 NEG AL CMC NOT AH ADC AH,0 NOT BL ADC BL,0 MOV DATA2,AL MOV DATA2+1,AH MOV DATA2+2,BL MOV AX,4C00H INT 21H CSEG ENDS END MBNEG [例3]设内存DATA单元存放一个无符号字节数据,编制程序将其拆成两位16进制数,并存入HEX和HEX+1单元的低4位,HEX存放高位16进制数,HEX+1单元存放低位16进制数。 设置堆栈指针 MOV SP,SIZE STK MOV AL,DATA MOV AH,AL AND AL,0F0H MOV CL,04 SHR AL,CL MOV HEX,AL AND AH,0FH MOV HEX+1,AH MOV AX,4C00H INT 21H CSEG ENDS END DISC 参考资料 简化段定义的源程序格式 .model small ;小型模式存储模式 .stack ; 1KB空间堆栈段 .data ;数据段 …… ;数据定义 .code ;代码段 start: mov ax,@data ;起始点 mov ds,ax ;设置DS …… ;程序代码 mov ax,4c00h int 21h ;结束点,返回DOS …… ;子程序代码 end start ;汇编结束 存储模式 *大连海事大学计算机科学与技术学院 * * Dalian Maritime University. *大连海事大学计算机科学与技术学院 * * Dalian Maritime University. 例题1:顺序程序设计实例 采用查表法,实现一位16进制数 转换为ASCII码显示 分析:数以补码存储,已知[x]补,求[-x]补,对三字节数据无法直接运用求补指令NEG,可应用对原数据包括符号位在内取反加1的办法。 又知使用NEG指令对一个字节数据取补时,若数据非0,则CF=1 则该操作可分以下几步完成: 最低字节取补; 进位取反; 中间字节取反的结果加进位; 高字节取反的结果加进位。 SSEG SEGMENT STACK STK DB 20 DUP(0) SSEG ENDS DSEG SEGMENT DATA1 DB 35H,26H,03H DATA2 DB 3 DUP(0) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG ASSUME SS:SSEG MBNEG: MOV AX,DSEG MOV DS,A
显示全部
相似文档