- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编及组成第5章
? 数值表达式 汇编语言程序设计的一般步骤 汇编语言程序设计一般有以下几个步骤: 1.分析问题,确定算法 2.绘制流程图 3.根据流程图编制程序 4.调试程序 流程图 1、流程图的概念 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。 2.流程图符号表示 (1)起止框:表示程序的开始和结束。 (1)直接寻址方式:JMP指令直接给出目标地址,通常用目标处的标号表示; ①段内直接寻址转移 执行的操作是:IP?(IP)+RD,RD是相对位移量,不影响标志位。 ②段间直接寻址转移:执行JMP指令时,将目标处指令地址的段基值和偏移量直接送入CS和IP中。 CODE1 SEGMENT ┆ JMP FAR PTR LABF ┆ CODE1 ENDS (二)条件转移指令 8086/8088指令系统中条件共18条。条件转移指令基本格式为: J X X 目标 其中,XX表示转移条件,目标地址通常使用标号。执行的操作是:条件满足时,则IP?(IP)+RD;否则,顺序执行下一条指令。 受影响的状态标志位:无。 ┆ JZ OK MOV AX,1 ┆ OK: MOV AX,0 条件转移的范围只能是段内,且RD只能是一个用补码表示的8为二进制的带符号数,因此转移范围是-128~127个字节。条件转移指令的目标代码均是2字节长。 条件转移指令可分为三大类: (1)简单条件转移指令 将单个标志位的状态作为条件来判断,以决定是否转移。这种指令共有5对,分别对5个标志位CF、ZF、SF、OF、PF的两种状态进行判断。 TEST DB1 JZ L1 MOV AL,0FFH JMP L2 L1: MOV AL,00H L2: …… 程序段2如下: MOV BL,DB1 SHL BL,1 JNC L1 MOV AL,0FFH JMP L2 L1: MOV AL,00H L2: …… …… (2)无符号数条件转移指令 这组常用于判断两个无符号数的大小,其判断条件是CF、ZF的状态组合。假设有两个无符号数A、B,在条件转移指令前用CMP指令比较A、B,即按A-B设置各位标志。 例如:编写一程序,找出三个字变量DW1、DW2、DW3中的最大数,并送入AX中。程序段如下: MOV AX,DW1 CMP AX,DW2 JAE BIGER MOV AX,DW2 DATA SEGMENT X DB -10 Y DB ? DATA ENDS STACK SEGMENT STACK DB 20H DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX CMP X,0 ;与0进行比较 JGE A1 ;X≥0转A1,JGE:A=B MOV Y,-1 ;X <0时,-1→Y JMP EXIT A1: JG A2 ;X>0转A2 MOV Y,0 ;X=0时,0→Y
文档评论(0)