微机系统与接口课程总结内容摘要:

A800H 实际存储 :06H,20H,00H,A8H,08H,20H,00,A8H,… 指针: 指针变量 (近 2/远 4) 微机系统与接口 东南大学 15 3 .汇编语言程序设计 MOV SI,OFFSET NPTPT1 MOV SI,[SI+2]。 NPT2(SI)=2020H ( 链表:结构 MOV SI,[SI].NEXT ) $:当前地址 ( 可移动 ) NEXT: JMP $ (EB FE); LENGTH1 EQU $NEXT 微机系统与接口 东南大学 16 3 .汇编语言程序设计 模块化 :注释;结构 分枝 ( 比较 散转 ) /循环 ( 条件 ) 流程框图 条件转移 Jcc shortlabel程序流的控制。 JZ/JE, JNZ/JNE, JS, JNS, JO, JP/JPE, JNP/JPO LOOP计数循环 ( CX次 ) ;条件循环 ( 计数 ) JCXZ,LOOPE/Z, DEC /INC COUNTER。 JCC 或 CMP JCC JMP (NEAR)/(FAR) JMP xxxx/ JMP FAR PTR 过程 /子程序利用 目的。 CALL BX。 CALL 2020H。 CALL 200:40A8H 微机系统与接口 东南大学 17 3 .汇编语言程序设计 INC/DEC BX/SI/DI—指针修改 ( 字节 177。 1 , 字 177。 2 , 双字 177。 4 ) ADD SI/BX/DI,10 MOV SI(BX/DI),OFFSET。 初始指针 MOV CX,300。 (COUNTER, COUNTER EQU 300) MOV AL/AX, [SI+2]; MOV [BX+100],AL/AX(数据 ) MOV AL,DH , MOV AX,SI(寄存器交换 ) ADD AL,BH (ADD DX,SI) ADD [SI],AL SUB SI,6 AND AL,100, OR XOR TEST CMP AL,10, CMP DX,[SI] JZ/JE (JNZ) JC/JNC(无符号 ) JGJNLE/JNGJLE 微机系统与接口 东南大学 18 3 .汇编语言程序设计 编程(例) 从数据段以 DAT为首地址的字符串中寻找’ A’字符 ( ’ A’=41H, 该字符串以 ‘ $’结尾 ,‘ $’=24H) , 并将它们的偏移地址依次存放于ADDR为首的存储区内 , 并以 0结束。 要求写出程序主要片断 (不必用伪指令定义变量 , 可直接用指令性语句编写 )。 DATA ADDR 12H,33H,55H,41H,41H,55H,…….’$’ 0003,0004H,0007H,0000 SI DI 忠实理解题意 要求 建模分析 微机系统与接口 东南大学 19 3 .汇编语言程序设计 参考程序 MOV SI,0 MOV DI,OFFSET ADDR MYLOOP: MOV AL,[SI]DAT CMP AL,’A’。 或 CMP AL,41H JNZ NEXT。 非 ’ A’字符 MOV [DI],SI。 是 ’ A’字符 ,保存偏移地址 INC DI。 修改当前偏移地址存储表指针 INC DI。 占两个字节 INC SI。 修改数据偏移指针 ,指向下一字符 JMP MYLOOP NEXT: CMP AL,’$’ JZ FINISH。 遇到串结束符 ’ $’ INC SI JMP MYLOOP。 继续处理 FINISH: XOR AX,AX MOV [DI],AX。 00结束 微机系统与接口 东南大学 20 3 .汇编语言程序设计 参考程序 变化 : 如果要求在规定的字串长度范围内 (如不超过 1000个 ),找到结束符 ’ $’, 将单元 FLAG清零 ,否则写入 0FFH。 加条件循环语句 MOV SI,OFFSET DAT MOV DI,OFFSET ADDR MOV CX,1000。 循环初值 MYLOOP: MOV AL,[SI] CMP AL,’A’。 或 CMP AL,41H JNZ NEXT。 非 ’ A’字符 MOV [DI],SI。 是 ’ A’字符 ,保存偏移量地址 INC DI。 修改当前偏移量地址存储表指针 INC DI。 占两个字节 JMP NEXT1。 继续循环 NEXT: CMP AL,’$’ JZ FINISH。 遇到串结束符 ’ $ 微机系统与接口 东南大学 21 3 .汇编语言程序设计 参考程序 变化 : 如果要求在规定的字串长度范围内 (如不超过1000个 ),找到结束符 ’ $’, 将单元 FLAG清零 ,否则写入 0FFH。 加条件循环语句 NEXT1:INC SI。 修改数据指针 ,偏移指向下一数据 LOOP MYLOOP。 1000个数未到 , 继续处理 MOV AL,0FFH。 未遇到 ’ A’, 错误标志 JMP PEXIT。 出口 FINISH:XOR AL,AL。 MOV AL,0 MOV [DI],AL。 0结束 ,接着将 00写入 FLAG单元 PNEXT: MOV FLAG,AL。 程序出口 ,写。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。