第6章微机计算原理.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章微机计算原理

例 6.6 要求设计一个软件延时程序,延时约1ms f=8MHZ T=1/f=0.125us (书P145) START: MOV CX,186 ;14T LP1: PUSHF ;14T POPF ;12T LOOP LP1 ;17 T HLT 循环体需要用14+12+17=43T X=1ms/(43 × 0.125us)=186 延时1秒如何编程?(P146) P449 MOV BX,03E8H; 十进制数1000 LP2: MOV CX,186 LP1: PUSHF POPF LOOP LP1 DEC BX JNZ LP2 HLT MOV CX,03E8H LP2: PUSH CX MOV CX,186 LP1: PUSHF POPF LOOP LP1 POP CX LOOP LP2 HLT 6.5 子程序 一般具有公用性、重复性或有相对独立性的程序 可设计为子程序。 子程序调用与返回由CALL和RET指令实现。 子程序调用实际是程序的转移,转子程序指令CALL执行时要保护返回地址,而转移指令不考虑返回问题。 每个子程序都有RET指令负责把压入栈区的返回地址弹出送IP或CS∶IP(段间返回),实现子程序返回。 6.5 子程序 注意的问题 1、现场的保护和恢复:PUSH 、 POP 在转子程序前工作现场:CPU有关寄存器和内存有关单元。若这个现场信息还有用处,那么在调用子程序前要设法保护这个现场。 保护现场:子程序前部操作完成现场保护,再由子程序后部操作完成现场恢复。现场信息可以压入栈区或传送到不被占用的存储单元. 也可以避开这些有用的寄存器或存储单元,达到保护现场的目的。 恢复现场:是保护现场的逆操作。当用栈区保护现场时,还应注意恢复现场的顺序不能搞错,否则不能正确地恢复父程序的现场。 6.5 子程序 注意的问题 2、参数传递:入口参数、出口参数 3、子程序名(子程序的入口地址) 4、以 RET 结束 例 6.7 : 将例6.6改为子程序 DELAY1S: PUSHF PUSH BX PUSH CX MOV BX,1000 LP2: MOV CX,186 LP1: PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP CX POP BX POPF RET 例6.8 找出数据块中的最大数,数据块 长放在2001H单元中,数据块从2002H 单元开始存放,找出的最大值放到2000H单 元中,假设数据为无符号的8位二进制数 例6.8 找出数据块中的最大数,数据块长放在2001H单元中, 数据块从2002H单元开始存放,找出的最大值放到2000H单 元中,假设数据为无符号的8位二进制数 MOV SI,2001H MOV CL,[SI] MOV AL,0 ; MOV CH,0 LP: INC SI CLC CMP AL,[S

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档