1、顺序结构程序设计,汇编语言的特点,汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数 利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序 在有些应用领域,汇编语言的作用是不容置疑和无可替代的 汇编程序设计的过程与其他高级语言程序设计大致相同,顺序程序设计,没有分支、循环等转移指令的程序,会按指令书写的前后顺利依次执行,这就是顺序程序 顺序结构是最基本的程序结构 完全采用顺序结构编写的程序并不多见,例题1:顺序程序设计实例 采用查表法,实现一位16进制数 转换为ASCII码显示
2、,例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 ;换码:ALDS:BXAL,例1:代码段(续),mov dl,al ;入口参数:DLAL
3、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开始的单元。,分析:数以补码存储,已知x补,求-x补,对三字节数据无法直接运用求补指令NEG,可应用对原数据包括符号位在内取反加1的办法。 又知使用NEG指令对一个字节数据取补时,若数据非0,则CF=1,则该操作可分以下几步完成: 最低字
4、节取补; 进位取反; 中间字节取反的结果加进位; 高字节取反的结果加进位。,大连海事大学计算机科学与技术学院,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 SEGMENTASSUME CS:CSEG,DS:DSEGASSUME SS:SSEG MBNEG: MOV AX,DSEGMOV DS,AXMOV AX,SSEGMOV SS,AX,大连海事大学计算机科学与技术学院,MOV SP,SIZE STKMOV AL,D
5、ATA1MOV AH,DATA1+1MOV BL,DATA1+2NEG ALCMCNOT AHADC AH,0NOT BLADC BL,0MOV DATA2,ALMOV DATA2+1,AHMOV DATA2+2,BLMOV AX,4C00HINT 21H CSEG ENDSEND MBNEG,大连海事大学计算机科学与技术学院,例3设内存DATA单元存放一个无符号字节数据,编制程序将其拆成两位16进制数,并存入HEX和HEX+1单元的低4位,HEX存放高位16进制数,HEX+1单元存放低位16进制数。,HEX HEX+1,大连海事大学计算机科学与技术学院,SSEG SEGMENT STACK
6、STK DB 20 DUP(0) SSEG ENDS DSEG SEGMENT DATA DB 0B5H HEX DB 2 DUP(0) DSEG ENDS CSEG SEGMENTASSUME CS:CSEG,DS:DSEGASSUME SS:SSEG DISC: MOV AX,DSEGMOV DS,AXMOV AX,SSEGMOV SS,AX,大连海事大学计算机科学与技术学院,MOV SP,SIZE STKMOV AL,DATAMOV AH,ALAND AL,0F0HMOV CL,04SHR AL,CLMOV HEX,ALAND AH,0FHMOV HEX+1,AHMOV AX,4C00HINT 21H CSEG ENDSEND DISC,参考资料,简化段定义的源程序格式,.model small ;小型模式存储模式.stack ; 1KB空间堆栈段.data ;数据段 ;数据定义.code ;代码段 start: mov ax,data ;起始点mov ds,ax ;设置DS ;程序代码mov ax,4c00hint 21h ;结束点,返回DOS ;子程序代码end start ;汇编结束,存储模式,