文档详情

第章汇编语言程设计三.ppt

发布:2018-07-08约4.73千字共28页下载文档
文本预览下载声明
第4章 汇编语言程序设计(三) Assembly Language Programming(3) 格式# 伪指令# ╳ DOS/BIOS调用 (简单了解) 重点:数据结构表示 变量、指针 程序结构 程序流控制(条件、分支、循环) 程序设计方法-----程序设计举例 微机系统与接口技术 东南大学 * 汇编语言程序举例(1)分块传送 DATA SEGMENT STRG DB 256 DUP(1,2,3) STG1 EQU STRG+7 STG2 EQU STRG+27 STRSE EQU 50 ;串长 DATA ENDS SSTACK SEGMENT STACK DB 256 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA MAIN: …. MOV AX,DATA MOV DS,AX MS-DOS程序 MOV ES,AX MOV CX,STRSE; MOV SI,OFFSET STG1; 源串首址 MOV DI,OFFSET STG2;目标首址 CLD ;增量方式 PUSH SI ADD SI,STRSE-1 ;SI=源串末址 CMP SI,DI POP SI JL OK ;不重叠 STD ;重叠,按减量 ADD SI,STRSE-1 ;指向串末 ADD DI,STRSE-1 OK: REP MOVSB 程序举例(1)分块传送(续一) STAG1 STAG2 STRSE STAG1+STRSE 程序举例(1)分块传送(续二) ……… MOV AX,4C00H ;返回DOS INT 21H CODE ENDS END MAIN 数据块传送:一般情况 P204 程序举例(1)分块传送(通用子程序) 通用子程序结构 功能=串移动 ENTRY: DS:SI=源串首址 ES:DI=目标首址 CX=串长 --考虑物理地址关系 数据块传送:一般情况 BLKMOV PROC PUSH DS PUSH ES PUSH  AX PUSH BX PUSH DX PUSH CX MOV AX,SI MOV CL,4 SAR AX,CL ;右移4位 MOV DX,DS ADD AX,DS MOV DS,AX AND SI,0FH 程序举例(1)分块传送(通用子程序) MOV BX,DI SAR BX,CL ;右移4位 MOV DX,ES ADD BX,DX MOV ES,BX AND DI,0FH CMP AX,BX ;比较SRC/DST起始地址高16位 JA MOVDOWN;从低往高 JB MOVUP CMP SI,DI;高16位相等,比低4位 JA MOVUP JB MOVDOWN 程序举例(1)分块传送(通用子程序) POP CX ;相等,不移动    JMP MOVEXIT MOVUP: STD POP CX MOV AX,CX DEC AX ADD SI,AX ADD DI,AX JMP DOMOV MOVDOWN: CLD POP CX DOMOV: REP MOVSB MOVEXIT: POP ……. ;?子程序保护 RET BLKMOV ENDP 程序举例(1)分块传送(通用子程序) 多重循环:例—软件延时(nT,T=210ns) SOFTDLY PROC MOV BL,10 ; 4T DELAY0: MOV CX,2801; 4T DELAY1: LOOP DELAY1; 17T/5T DEC BL ;3T JNZ DELAY ;16T/4T RET ;20T SOFTDLY ENDP n=4+10*(4+2801*17-12)+3+16)-12 +20 --10ms 内
显示全部
相似文档