第4章吉林大学课件微机接口原理.ppt
文本预览下载声明
字符串输出显示 被显示的字符串必须以‘$’结束,如果希望光标能自动换行,则应在字符串结束前加上回车及换行的ASCII码0DH和OAH。 * 字符串输出显示例 DATA SEGMENT MESS1 DB ‘Input String:’ 0DH,0AH,’$’ DATA ENDS CODE SEGMENT ┇ MOV AH,09 MOV DX,OFFSET MESS1 INT 21H ┇ * * 4.4 汇编语言程序设计基础 1. 程序质量的评价标准 ·程序的正确性和完整性 ·程序的易读性 ·程序的执行时间和效率 ·程序所占内存的大小 2.设计步骤: 根据实际问题抽象出数学模型 确定数据结构及算法 画程序流程图-流程图是算法的一种表示方式 分配内存工作单元和寄存器 程序编码(.ASM) 汇编生成目标文件(.OBJ) 程序的编译连接 调试 * 程序流程图符号 起始: 功能: 判断: 子过程: * 在计算机上进行程序设计过程 D:\masmEDIT 输入源程序 D:\masmMASM 汇编 D:\masmLINK 链接 D:\masmTD 调试 * * 3.源程序的基本结构 顺序程序 分枝程序 循环程序 子程序 * 1.顺序程序:CPU按照指令的排列顺序逐条执行 例4-11 对于三个8位无符号数86H、34H和21H,编写S=86H*34H-21H的程序 取被乘数 取乘数 求乘积 取第3个操作数 将减数扩展为16位 做减法 结果送指定处 初始化 结 束 * 程序如下 DATA SEGMENT MUN DB 86H,34H,21H RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START : MOV AX, DATA MOV DS, AX LEA SI, NUM LEA DI, RESULT MOV AL, [SI]; (AL) ←86H * MOV BL, [SI+1]; (BL) ←34H MUL BL ; (AX) ←86H*34H MOV BL, [BL+2]; (BL) ←21H MOV BH, 0 SUB AX, BX MOV [DI], AX CODE ENDS END START Jcc L1 cc不成立的程序段 JMP L2 L1: cc成立的程序段 L2: 后续语句 cc cc成立则 cc不成立则 后继语句 Y N 2.分支程序设计: 根据不同的条件转移到不同的程序段执行的各种分支程序 * 例4-13 编写程序,将数据区中以字节变量BUFFER为首地址的100个单元清零。 程序如下: DATA SEGMENT BUFFER BD 100DUP(?) COUNT BD 100 DATA ENDS STACK SEGMENT DW 32 DUP(?) STACK ENDS * CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV CL, COUNT LEA BX,
显示全部