微机原理3.8程序举例PPT优秀课件

上传人:壹****1 文档编号:567643665 上传时间:2024-07-21 格式:PPT 页数:13 大小:149KB
返回 下载 相关 举报
微机原理3.8程序举例PPT优秀课件_第1页
第1页 / 共13页
微机原理3.8程序举例PPT优秀课件_第2页
第2页 / 共13页
微机原理3.8程序举例PPT优秀课件_第3页
第3页 / 共13页
微机原理3.8程序举例PPT优秀课件_第4页
第4页 / 共13页
微机原理3.8程序举例PPT优秀课件_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《微机原理3.8程序举例PPT优秀课件》由会员分享,可在线阅读,更多相关《微机原理3.8程序举例PPT优秀课件(13页珍藏版)》请在金锄头文库上搜索。

1、汇编语言程序设计举例 (一)例、现有多个有符号数200、-12、45、78、500、-1000,编制程序,找出最大值,放至指定的MAX存储单元中。并把数据200、-12、45、78、500、-1000显示出来,编制程序。 设计数据段在数据段中给必要数据分配存储器单元 设计堆栈段若无堆栈指令或子程序或中断程序此段可略去 设计代码段实现要求功能程序设计步骤1代码段程序方框图初始化把第一个数据放入AX中AX=下一个数据?把此数据放入AX中修改存储器地址指针比较结束吗?把AX送入最大值单元NYNY2 DATA SEGMENT BUFFER DW 200,-12,45,500,-1000 COUNT E

2、QU ($-BUFFER)/2 MAX DW ? ;用于存放最大值 MES1 DB 200,-12,45,78,500,-1000,0AH,0DH,$ DATA ENDS STACK SEGMENT DB 64 DUP(?) TOP EQU $-STACK;计算出堆栈指针数值 STACK ENDS 3CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOV AX,SEG DATA MOV DS,AX MOV AX,SEG STACK MOV SS,AX MOV SP,TOP MOV CX,COUNT LEA BX,BUFFER MOV AX,B

3、X INC BX INC BX DEC CXAGAIN:CMP AX,BX JGE NEXT MOV AX,BXNEXT:INC BX INC BX LOOP AGAIN MOV MAX,AX MOV AH,9 LEA DX,MES1 INT 21HQQ1: MOV AH,1 INT 16H JZ QQ1 MOV AH,4C INT 21HCODE ENDS END BEGIN ;显示字符串;等待有无任意键按下;返回DOS结束;大于等于转;初始化DS;初始化SP;初始化SS;比较;初始化指针;改变指针4(二)统计字符串长度 假设某字符串为abcduvwxyz,以回车符(CR odh)结束,从头

4、搜索字符串,统计字符串字符的个数,并在显示器上显示出串长(以16进制显示) 指令:SCASB功能:AL-(DI)或AX-(DI) 只反映标志位,结果不送回,自动修改 DI指针 5 设计数据段在数据段中给必要数据分配存储器单元 设计堆栈段若无堆栈指令或子程序或中断程序此段可略去 设计代码段实现要求功能程序设计步骤6置串指针置串长度的初值为0取串元素=CR?串长度加1把串长度的高4位转换成ASCII码并显示 返回YN代码段程序框图显示符号H存串长度把串长度的低4位转换成ASCII码并显示7十六进制转换成ASCII子程序框图假设一位十六进制数已放在AL的8位中AL10? AL+37HAL AL+30

5、HAL 返回RETYN8汇编程序如下: ;name length_of_string and displayDATASEGMENTSTRINGDBabcduvwxyz,0DHL1 DB?CR EQU 0DHDATAENDSSTACK SEGMENT PARA STACK STACKS1 DB 100 DUP(?)STACK ENDSCODESEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK9BEGIN: MOVE AX,DATA MOV DS,AX MOV ES,AX LEA DI,STRING ;设串的地址指针 MOV,DL,0 ;置串长度的初值为

6、0 MOV AL,CR ;串标志送入AL CLD ;清DF=0,使地址自动 增量AGAIN: SCASB ;搜索串10 JE DONE ;找到结束标志,停止 INC DL ;串长度加1 JMP AGAINDONE: LEA BX,L1 MOV BX,DL ;存串长度 MOV DH,DL ;串长暂存 MOV CL,4 SHR DL,CL ;取串长高4位 MOV AL,DL CALL CHANGE ;将高4位转换成ASCII码放入AL MOV DL,AL MOV AH,2 INT 21H ;显示高4位 11 MOV AL,DH ;取暂存串长 AND AL,0FH ;取串长低4位 CALL CHANGE MOV DL,AL MOV AH,2 INT 21H ;显示串长低位 MOV DL,H MOV AH,2 INT 21H ;显示H MOV AH,4CH INT 21H CHANGE PROC ;过程或子程序 CMP AL,10 JL ADD30 ;小于转 ADD AL,37H JMP P1ADD30:ADD AL,30H P1:RETCHANGE ENDPCODE ENDS END BEGIN将二进制数转变成ASCII码子程序12个人观点供参考,欢迎讨论

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号