微机原理与应用第5章1节2014SGQ.pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与应用第5章1节2014SGQ

复习 1、掌握基本指令:MOVS指令用法和应用范围及对标志位的影响。 2、基本前缀:REP、LOOP。 3 、CLC/CLD/STC/STD 时间:2014—10 2、两类汇编语句 (1)指令性语句:能产生目标代码,CPU可以执行的能完成特定功能的语句。 (2)指示性语句:不产生目标代码,仅在汇编过程中告诉汇编程序应如何汇编。 从程序看出,汇编语言源程序通常有几个段构成,每个段以 SEGMENT语句开始,以ENDS语句结束,并分别有一个段名。第一段是数据段,段名DATA,用来定义变量,存放原始数据和运算结果。第二段为代码段,段名为CODE,用来安排执行代码,是用户编程实现各项功能的主要部分。 整个源程序必须用END语句结束,它通知汇编程序停止汇编,END后面的标号START指明该程序执行的启动地址。源程序中各段的名字可以任选,段的数目可以根据需要确定.如果用到堆栈段和附加段,在段的定义的时候也要定义出来。 DATA SEGMENT ;定义数据段 DATA ENDS ;数据段结束 ESEG SEGMENT ;定义附加段 ESEG ENDS ;附加段结束 CODE SEGMENT ;定义代码段 ASSUME CS:CODE, DS:DATA,SS:STack,ES:ESEG ;段的 分配 START: MOV AX,DATA ;指令性语句开始(我们第二章学习编写的程序) MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,STack MOV SS,AX ;编写第二章学习的主程序 * * 判断对错: 1.MOV AX,[BP+SI]的源操作数的物理地址为(DS)×16+(BP)+(SI)。( ) 2.段内转移要改变IP,CS的值。( ) 3.立即寻址方式不能用于目的操作数字段。( ) 4.不能给段寄存器进行立即数方式赋值。( ) 5.OF位用来表示带符号数的溢出,CF位用来表示无符号数的溢出。( ) 6.SP的内容在任何时候都指向当前的栈顶,要指向堆栈的其它位置,可以使用BP指针。( ) × × √ √ √ √ √ √ 7.指令中都必须有操作数。( ) 8.立即数可以直接送给寄存器、存储器或者段寄存器。( ) 9.在串指令使用前,必须先将DF置0。( ) 10.在用指令LOOP时,必须将循环次数送CX。( ) 11.算术运算指令都分带符号数和不带符号数运算指令。( ) 12.基址变址寻址是在基址寄存器和变址寄存器中寻找操作数。( ) × × × × × √ DSEG SEGMENT DATA DB -1,3,-5………… COUNT DW 50 RLT DW 0 DSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV SI,OFFSET DATA MOV CX,COUNT MOV DX,0 AGAIN:MOV AL,[SI] CMP AL,0 JGE PLUS INC DX 方法2: AND AL,AL JNS PLUS PLUS:INC SI DEC CX JNZ AGAIN MOV RLT,DX MOV AH,4CH INT 21H CODE ENDS END START 例10统计由DATA单元开始的字节数据块中负元素的个数。数据个数在COUNT单元,统计结果存入RLT单元。(两种方法) 思考:还有其他指令可以吗? DATA SEGMENT ORG 1000H DAT1 DB 20 DUP(1,2,3,4,5) COUNT DW 100 ORG 2000H DAT2 DB 100 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV ES,AX 方法2 AGAIN: MOVSB DEC CX JNZ AGAIN 方法3 REP MOVSB MOV AH,4CH INT 21H CODE ENDS END START 例15.串操作:自1000H单元开始有一个100个数的字节数据块,要把她们传送到2000H开始的单元中,用3种方法:不用串;用单个传送的串操作;用数据块成组传送(REP)。 MOV CX,COUN

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档