第四章_第01讲_程序设计的基本方法_第1页
第四章_第01讲_程序设计的基本方法_第2页
第四章_第01讲_程序设计的基本方法_第3页
第四章_第01讲_程序设计的基本方法_第4页
第四章_第01讲_程序设计的基本方法_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 1第四章 程序设计的基本方法4.1 概述程序设计程序设计要点要点: (1) (1) 分析问题的分析问题的需求需求,选择,选择解决方法解决方法 (2) (2) 针对选定的算法,编写程序代码针对选定的算法,编写程序代码一个高质量的程序不仅要一个高质量的程序不仅要满足正确性的要求满足正确性的要求,而且,而且还应尽可能实现以下几点:还应尽可能实现以下几点:(1) (1) 结构好结构好:结构清晰、简明、易读、易调试:结构清晰、简明、易读、易调试(2) (2) 效率高效率高:执行速度快:执行速度快(3)(3) 资源少资源少:占用存储空间少:占用存储空间少2 2汇编语言程序设计的汇编语言程序设计的一般步

2、骤一般步骤: :(1 1)分析问题分析问题,选择合适的解题方法。,选择合适的解题方法。(2 2)根据具体问题,确定)根据具体问题,确定输入输出数据的格式输入输出数据的格式。(3 3)分配存贮区分配存贮区并给变量命名并给变量命名( (包括分配寄存器包括分配寄存器) )。(4 4)绘制程序的)绘制程序的流程图流程图,即将解题方法和步骤用,即将解题方法和步骤用程序流程图的形式表示出来。程序流程图的形式表示出来。(5 5)根据流程图)根据流程图编写程序编写程序。(6 6)静态检查静态检查与与动态调试动态调试3 3几种程序设计方法:几种程序设计方法: 1. 1. 顺序顺序程序设计程序设计 2. 2. 分

3、支分支程序设计程序设计 3. 3. 循环循环程序设计程序设计 4. 4. 子程序子程序的设计的设计本章主要讲解:本章主要讲解: 1. 1. 各种转移指令格式、功能及使用条件各种转移指令格式、功能及使用条件 2. 2. 分支程序设计分支程序设计 3. 3. 循环程序设计循环程序设计 4. 4. 子程序的设计子程序的设计本章主要讲述的内容本章主要讲述的内容4 4几种框图符号几种框图符号1. 1. 起始起始、终止终止框框 2 2判断判断框框3 3处理说明处理说明框框4 4子程序子程序或过程调用框或过程调用框5. 5. 流向流向框框6 6连接连接框框Y YN N112125 54.3.4 4.3.4

4、分支程序设计分支程序设计分支程序的特点:根据不同情况作出不同的处理,分支程序的特点:根据不同情况作出不同的处理,程序结构分成程序结构分成了若干支路了若干支路。分支的结构形式:分支的结构形式: (1) (2) (1) (2)结构特点:结构特点:1.1.程序运行方向是向前的,条件确定,程序运行方向是向前的,条件确定,只能执行分支中的一个只能执行分支中的一个。2.2.机器根据不同的情况作出判定,机器根据不同的情况作出判定,有选择的执行相应的分支有选择的执行相应的分支。3.3.这类程序称之为这类程序称之为分支程序分支程序。N NY Y判定条件判定条件分支分支1 1分支分支2 2相当于相当于C C语言的

5、语言的ifif、elseelse判定条件判定条件分支分支1 1分支分支2 2相当于相当于C C语言的语言的switch()switch()分支分支n n6 6问题:计算机怎样判断这些分支?问题:计算机怎样判断这些分支? (1 1)分支由条件转移指令产生分支由条件转移指令产生,不同条件通过,不同条件通过EFLAGSEFLAGS的的标志位状态标志位状态(0 0或或1 1)反映出来;)反映出来;(2 2)转移指令不影响转移指令不影响EFLAGSEFLAGS的标志位的标志位,可连续使用转,可连续使用转移指令,产生多个分支。移指令,产生多个分支。例:可以产生如下的多个分支。例:可以产生如下的多个分支。

6、CMP BX, 0 CMP BX, 0 JLE L1 ; JLE L1 ; 小于等于小于等于0 0,转移到,转移到L1L1 分支分支1 ; 1 ; 大于大于0 0L1: JL NEXT ; L1: JL NEXT ; 小于小于0 0,转移到,转移到NEXTNEXT 分支分支2 ; 2 ; 等于等于0 0NEXT:NEXT:分支分支3 ; 3 ; 小于小于0 07 74.3.4 4.3.4 分支程序设计分支程序设计要点要点(1)(1) 选择选择合适合适的转移指令;的转移指令;(2)(2) 为每个分支安排为每个分支安排出口出口;(3)(3) 将分支中的将分支中的公共部分公共部分尽量放到分支尽量放到

7、分支前或分支后的前或分支后的公共程序段公共程序段中;中;(4)(4) 流程图、程序对应流程图、程序对应;(5)(5) 调试时,逐分支检查调试时,逐分支检查。8 8转移指令的分类转移指令的分类转移指令条件转移无条件转移简单条件简单条件转移 (10条)无符号数无符号数条件转移(4)有符号数有符号数条件转移(4)段内直接、段间直接段内间接、段间间接9 94.3.1 简单条件转移 根据单个标志位单个标志位 CF、ZF、SF、OF、PF的值确定是否转移,之所以称之为简单条件,就是因为它只根据一个标志位进行跳转。格式:标号: 操作符 短标号 短标号是一个标号。该标号代表条件成立时,想转移到的目的地址目的地

8、址。若该目的地若该目的地址与当前址与当前(IP)(IP)之间的字节距离在之间的字节距离在-128 -128 127127之间,则称该标号为短标号。之间,则称该标号为短标号。1010转移指令的特点转移指令的特点 特点:特点: (1) (1) 改变程序的改变程序的执行顺序执行顺序,即改变指令指针,即改变指令指针CS:IP/EIPCS:IP/EIP的值;的值; (2) (2) 不改变不改变标志位标志位。 主要用于设计分支程序,主要用于设计分支程序,关键关键在于根据需要,在于根据需要,根据各个根据各个标志位的不同状态标志位的不同状态,选用,选用合适合适的转移指的转移指令。令。1111简单条件转移指令简

9、单条件转移指令J JZ Z/J/JE E ZF=1 ZF=1时,转移时,转移J JNZNZ/J/JNENE ZF=0 ZF=0时,转移时,转移J JS S SF=1 SF=1时,转移时,转移J JNSNS SF=0 SF=0时,转移时,转移J JO O OF=1 OF=1时,转移时,转移J JNONO OF=0 OF=0时,转移时,转移J JC C CF=1 CF=1时,转移时,转移J JNCNC CF=0 CF=0时,转移时,转移J JP P/J/JPEPE PF=1 PF=1时,转移时,转移J JNPNP/J/JPOPO PF=0 PF=0时,转移时,转移运算结果为运算结果为0 0运算结果

10、不为运算结果不为0 0运算结果为负数运算结果为负数运算结果不为负数运算结果不为负数运算结果溢出运算结果溢出运算结果没有溢出运算结果没有溢出运算产生进位借位运算产生进位借位运算没有产生进位借位运算没有产生进位借位结果低结果低8 8位位1 1的个数为偶数的个数为偶数结果低结果低8 8为为1 1的个数为奇数的个数为奇数1212 JZ L1 MOV AX , 0 L1:ZF = 1?MOV AX ,0NyL1:指令与流程图的对应关系1313简单条件转移指令的特点简单条件转移指令的特点特点:特点: (1) (1) 根据根据单一标志位单一标志位确定转移方向;确定转移方向; (2) (2) 当超出转移范围时

11、,可用当超出转移范围时,可用JMPJMP搭桥;搭桥; (3) (3) 不能作不能作段间转移段间转移,不得作,不得作间接转间接转移移; (4) (4) 不影响不影响EFLAGSEFLAGS的标志位的标志位,可连续,可连续使用转移指令,产生多个分支。使用转移指令,产生多个分支。14144.3.2 4.3.2 无符号数无符号数条件转移指令条件转移指令1.1.无符号数无符号数条件转移指令往往跟在条件转移指令往往跟在比较指令之后比较指令之后;2.2.根据与无符号数特征有关条件标志根据与无符号数特征有关条件标志CFCF和和ZFZF的的组组合决定转移方向合决定转移方向。 JA / JNBE JA / JNB

12、E 短标号短标号 当当 CF=0 CF=0 并且并且 ZF=0ZF=0时,转移时,转移( (大于大于) ) JAE / JNB JAE / JNB 短标号短标号 当当 CF=0 CF=0 或者或者 ZF=1ZF=1时,转移时,转移( (大于等于大于等于) ) JB / JNAE JB / JNAE 短标号短标号 当当 CF=1 CF=1 并且并且 ZF=0ZF=0时,转移时,转移( (小于小于) ) JBE / JNA JBE / JNA 短标号短标号 当当 CF=1 CF=1 或者或者 ZF=1ZF=1时,转移时,转移( (小于等于小于等于) )1515 大于大于转(即不小于且不等于转)转(

13、即不小于且不等于转)JA/JNBEJA/JNBE 条件标志:条件标志:CF=0CF=0且且ZF=0ZF=0时转移时转移 用于两个用于两个无符号数无符号数a a、b b的比较,若的比较,若abab则实现转移则实现转移 查看查看a a,b b两数相减的结果:两数相减的结果:a-ba-b CMP a,b CF( CMP a,b CF(有没有借位有没有借位) ZF() ZF(相不相等相不相等) )a b a - b 0 0a b a - b 0 0a = b a - b 0 1a = b a - b 0 1a b a - b 1 0a (BX), (AX)(BX), 则则CFCF一定会为一定会为0 0

14、,ZF=0ZF=0,转移到,转移到L1L1处。处。例1: (AX)= 1234H, (BX)=0234H例2: (AX)= 0A234H, (BX)=0234H例3: (AX)= 0A234H, (BX)=09234H通过实例查看标志寄存器的变化通过实例查看标志寄存器的变化1818问题:问题:CFCF和和ZFZF标志位是否可以作为判断有符号数比较大小的标志标志位是否可以作为判断有符号数比较大小的标志位?来看两位?来看两有符号数有符号数相减的结果:相减的结果:A-BA-B,A A,B B取值有下列几种情况:取值有下列几种情况:A AB BA A,B B取值取值CFCFZFZFSFSFOFOFA=

15、BA=B0 01 10 00 0+ + +ABAB0 00 00 00 0+ + +ABA BA B1 10 00 00 0- - -A BA =OPSOPD=OPS,不转移不转移结果为正有溢出,说明真正结果应为负(结果为正有溢出,说明真正结果应为负(OPDOPD小),小),转移转移结果为负无溢出,说明结果为负无溢出,说明OPDOPSOPD(BX), 则SF、OF会相等,ZF=0,转移到L1处。例1: (AX)= 1234H, (BX)=0234HSF=0、OF=0, ZF=0, CF=0不论使用 JA 还是 JG ,转移的条件均成立2323例2: (AX)= 0A234H, (BX) =02

16、34H例3: (AX)= 0A234H, (BX) =09234H执行(AX) - (BX)后: SF = 1, ZF=0, CF=1, OF = 0对于 JA ,条件成立 (CF=0 , ZF=0)对于 JG ,条件不成立 (因为SFOF)SF = 0 , ZF=0, CF=0, OF=0对于JA、JG,条件均成立2424根据以上各条件指令的选用,可总结如下:根据以上各条件指令的选用,可总结如下:1.1.简单简单转移指令转移指令(1)(1)用在用在TESTTEST、CMPCMP、ANDAND、OROR后面,测试某一标志位是否后面,测试某一标志位是否满足条件;满足条件;(2)(2)用在算术运算

17、指令后面,测试某一标志位是否满足条用在算术运算指令后面,测试某一标志位是否满足条件;件;(3)(3)在循环计数控制中,用来判断循环是否结束,在循环计数控制中,用来判断循环是否结束,(JZ/JE/JNZ/JNE)JZ/JE/JNZ/JNE)。2.2.有符号数有符号数的条件转移指令的条件转移指令(1)(1)用在用在CMPCMP后面,比较带符号数大小,确定转移方向;后面,比较带符号数大小,确定转移方向;(2)(2)用在算术运算指令后面,根据运算结果用在算术运算指令后面,根据运算结果正负正负确定转移确定转移方向;方向;(3)(3)用在用在OROR,ANDAND后面,根据结果后面,根据结果正负正负确定转

18、移方向。确定转移方向。3.3.无符号数无符号数的条件转移指令的条件转移指令(1)(1)用作无符号数的比较用作无符号数的比较-地址的比较、地址的比较、ASCIIASCII码比较;码比较;(2)(2)用于用于循环控制循环控制。2525到底选用哪条指令,这是由到底选用哪条指令,这是由解题的要求和被判断对象的特点解题的要求和被判断对象的特点,如何,如何理解?理解? 运算或者比较指令不管运算或者比较指令不管有符号数有符号数还是还是无符号数无符号数,它们根据运算,它们根据运算结果既按照有符号数设置好标志位结果既按照有符号数设置好标志位(OF(OF、SFSF、ZF)ZF),同时也按照,同时也按照无符号数设置

19、好标志位无符号数设置好标志位(CF(CF、ZF)ZF),只等条件转移指令选择相应只等条件转移指令选择相应的标志位判断的标志位判断,进行转移。,进行转移。 数字本身是有符号数还是无符号数,不由自身的写法决定,而数字本身是有符号数还是无符号数,不由自身的写法决定,而由能够区分它们的指令决定由能够区分它们的指令决定(条件转移、(条件转移、MUL/IMULMUL/IMUL)。)。 若想按照若想按照有符号数有符号数处理,就选择处理,就选择有符号数有符号数的处理指令;的处理指令; 若想按照若想按照无符号数无符号数处理,就选择处理,就选择无符号数无符号数的处理指令。的处理指令。 要了解一条指令是否对于要了解

20、一条指令是否对于标志位标志位是否真正起到影响作用。是否真正起到影响作用。例:例:AXAX加加1 1,如果产生了进位,转移到,如果产生了进位,转移到L1L1处。处。 INC AX INC AX JC L1 JC L1INCINC指令不影响指令不影响CFCF标志位,指令选择错误。标志位,指令选择错误。2626例:分析以下程序段,指出所完成的功能。例:分析以下程序段,指出所完成的功能。DATA SEGMENTDATA SEGMENT X X DW n DW n Y DW 0 Y DW 0 OVERF DB 0AH,0DH, OVERF DB 0AH,0DH,IS overflowIS overflo

21、w!$DATA ENDSDATA ENDS MOV Y,-1 MOV Y,-1 MOV AX, MOV AX,X X CMP AX,0 CMP AX,0 JZJZ EXIT1 ; X=0 EXIT1 ; X=0转转EXIT1(EXIT1(将将0-Y)0-Y) ADD AX,1000H ; ADD AX,1000H ; 如如(X)0(X)0,则,则(X)+1000HAX(X)+1000HAX JO OVER ; JO OVER ; 溢出转溢出转OVER(OVER(打印字串打印字串,-1Y),-1Y) JNSJNS EXIT1 ; EXIT1 ; 和为正转和为正转EXIT1EXIT1 NEG AX

22、 ; NEG AX ; 为负求补为负求补, ,即即X X的的绝对值绝对值EXIT1EXIT1:MOV Y,AX ; MOV Y,AX ; 结果(结果(AXAX)Y YEXIT0: MOV AH,4CHEXIT0: MOV AH,4CH INT 21H INT 21HOVER: OVER: LEALEA DX,OVERF DX,OVERF MOV AH,9 MOV AH,9 INT 21H INT 21H JMP EXIT0 JMP EXIT02727例1:从键盘输入09中任一自然数,求其立方值。若输入的字符不是09中的数字,则显示“Input Error!”从键盘输入一个字符是09中的某一个数

23、求其立方显示输入错结束Y开始N2828从键盘输入一个字符是09中的某一个数求其立方显示输入错结束YN程序是从上到下一行行编写的。从二维框图,向一维变迁。2929从键盘输入一个字符不是09中的数求其立方显示输入错结束Ny条件成立时,一般的转移标号应与该指令有一段距离,条件不成立的处理分支,就在转移指令之下。条件写法变迁3030从键盘输入一个字符(AL)9Ny条件细化加标号LERR:EXIT:c4_108_1.asm3131例2:在例1的基础上显示出立方值。显示立方值,可以使用“输出一个串”调用。构造一个串表,分别存放各立方值对应的ASCII串。 如何构造? 如何找到待显示串的起始位置?见程序 :

24、C4_108_2.asm3232例3:根据输入的数字,显示对应的信息. 0 : zero 1 : first 9 : nine 其它:error 对于不同的输入,输出的串长度不同。见程序: C4_108_3.asm程序的关键:如何根据输入,将对应的待显示的串首址送DX。3333格式:格式:JMP JMP 标号标号作用:作用: 1. 1.无条件地转移到标号指定的位置执行,具有转移的无条件地转移到标号指定的位置执行,具有转移的范围范围大,大,灵活性灵活性大大 2. 2.不能构成分支程序不能构成分支程序,但是可以将各分支的出口,但是可以将各分支的出口重新重新汇集汇集在一起在一起 CMP BX, 0

25、CMP BX, 0 JLE JLE L1 ; L1 ; 小于等于小于等于0 0,转移到,转移到L1L1 分支分支1 ; 1 ; 大于大于0 0 JMP GO1 JMP GO1L1: JL NEXT ; L1: JL NEXT ; 小于小于0 0,转移到,转移到NEXTNEXT 分支分支2 ; 2 ; 等于等于0 0 JMP GO1 JMP GO1NEXT:NEXT: 分支分支3 ; 3 ; 小于小于0 0GO1: ; GO1: ; 所有分支汇集所有分支汇集4.3.5 4.3.5 无条件转移指令无条件转移指令( (上课起点位置上课起点位置) )34343.3.当条件转移指令超出转移范围时,可以用

26、当条件转移指令超出转移范围时,可以用JMPJMP搭桥搭桥例:例:JL L1 ; JL L1 ; 小于小于0 0时转时转L1L1超过了规定的转移范围超过了规定的转移范围 L1: L1: 可改为如下指令串:可改为如下指令串: JGE L0 ; JGE L0 ; 大于等于大于等于0 0时转时转L0L0 JMP L1 ; JMP L1 ; 小于小于0 0时无条件转时无条件转L1L1L0: L0: L1: L1: 4.3.5 4.3.5 无条件转移指令无条件转移指令3535根据所处的根据所处的位置位置:1.1.段内转移段内转移:要转移的目的地址与指令本:要转移的目的地址与指令本身在身在同一段同一段;2.

27、2.段间转移段间转移:要转移的目的地址与指令本:要转移的目的地址与指令本身在身在不同段不同段。根据寻址的根据寻址的方式方式:1.1.直接方式直接方式转移:转移到转移:转移到标号标号。2.2.间接方式间接方式转移:从转移:从存储器存储器或或寄存器寄存器中得中得到转移目的地的到转移目的地的段地址段地址和和偏移地址偏移地址。4.3.5 4.3.5 无条件转移指令的分类无条件转移指令的分类36364.3.5 无条件转移指令格式格式名称名称功能功能JMP JMP 标号标号段内直接段内直接(IP/EIP)+(IP/EIP)+位移量位移量 IP/EIP IP/EIPJMP OPDJMP OPD段内间接段内间

28、接(OPD) (OPD) IP/EIP IP/EIPJMP JMP 标号标号段间直接段间直接标号的标号的EA EA IP/EIP IP/EIP段首址段首址 CS CSJMP OPDJMP OPD段间间接段间间接(OPD) (OPD) IP/EIP IP/EIP(OPD+2/4) (OPD+2/4) CS CS37371.1.段内段内直接跳转直接跳转 格式:格式:JMP JMP 标号标号 功能:功能:(IP/EIP) + (IP/EIP) + 相对位移量相对位移量 IP/EIPIP/EIP 执行后执行后 IP/EIP = IP/EIP = 标号的标号的EAEA2.2.段间段间直接跳转直接跳转 格

29、式:格式:JMP JMP 标号标号 或或 JMP JMP FAR PTR FAR PTR 标号标号 功能:功能:标号标号所在段首址所在段首址CS CS 标号的标号的EAIPEAIP 以上寻址方式实际上均为以上寻址方式实际上均为立即寻址方式立即寻址方式。 段内直接跳转:段内直接跳转:JMP 0018JMP 0018 段间直接跳转:段间直接跳转:JMP 0ABC:0000JMP 0ABC:00004.3.5 无条件转移指令38383.3.段内间接跳转段内间接跳转 格式:格式:JMP OPDJMP OPD 功能:功能:(OPD) IP/EIP (OPD) IP/EIP 其中其中OPDOPD为为寄存器

30、寄存器方式、方式、存储器存储器方式方式( (寄存器间寄存器间接、变址、基址变址、直接接、变址、基址变址、直接) )寻址方式,寻址方式,OPDOPD不能不能是立即数是立即数。 如果是寄存器寻址方式,则如果是寄存器寻址方式,则16/3216/32位寄存器的位寄存器的内容为偏移地址内容为偏移地址IP/EIPIP/EIP。 16 16位段:位段:1616位寄存器的内容位寄存器的内容IPIP JMP AX JMP AX 32 32位段:位段:3232位寄存器的内容位寄存器的内容EIPEIP JMP EDX JMP EDX4.3.5 无条件转移指令39393.3.段内间接跳转段内间接跳转 如果是存储器寻址

31、方式,它实质是将由寻址方如果是存储器寻址方式,它实质是将由寻址方式得到的存储器内的操作数作为式得到的存储器内的操作数作为偏移地址偏移地址IP/EIPIP/EIP。1616位段:字类型变量位段:字类型变量/ /存储区的内容存储区的内容IPIP WBUF DW ? WBUF DW ? JMP WBUF JMP WBUF JMP WORD PTR BX JMP WORD PTR BX4.3.5 无条件转移指令4040我们来看看几种作用等价的段内转移我们来看看几种作用等价的段内转移 ADDR16ADDR16 DW ? DW ? JMP GO2 ; JMP GO2 ; 直接直接转移转移 LEA BX,G

32、O2 LEA BX,GO2 JMP BX ; JMP BX ; 寄存器寻址寄存器寻址的间接转移的间接转移 LEA BX,GO2 LEA BX,GO2 MOV ADDR16,BX MOV ADDR16,BX MOV ADDR16, OFFSET GO2 MOV ADDR16, OFFSET GO2 JMP ADDR16 ; JMP ADDR16 ; 直接寻址直接寻址的间接转移的间接转移 LEA BX,GO2 LEA BX,GO2 MOV ADDR16,BX MOV ADDR16,BX LEA BX,ADDR16 LEA BX,ADDR16 JMP BX ; JMP BX ; 寄存器间接寻址寄存器

33、间接寻址的间接转移的间接转移GO2GO2: : 41414.4.段间间接转移段间间接转移 格式:格式:JMP OPDJMP OPD 功能:功能:(OPD)IP/EIP (OPD+2/4)CS(OPD)IP/EIP (OPD+2/4)CS 其中其中OPDOPD只能为只能为存储器寻址方式存储器寻址方式。此时地址信。此时地址信息必须用一息必须用一双字双字(16(16位段位段) )或,或,三字或四字三字或四字(32(32位位段段) )单元存放。单元存放。 对于对于1616位段:双字类型变量位段:双字类型变量/ /存储区的内容存储区的内容 (OPDOPD)IPIP, (OPD+2OPD+2)CSCSJM

34、P OPDJMP OPD OPD OPD OPD+2 OPD+2 IP IP CS CS跳转到的偏移地址跳转到的偏移地址跳转到的段地址跳转到的段地址4242看看几种作用等价的段间转移看看几种作用等价的段间转移 ADDR32 DD GO3 ADDR32 DD GO3 JMP FAR PTR GO3 JMP FAR PTR GO3 JMP FGO3 JMP FGO3 MOV AX,OFFSET GO3 MOV AX,OFFSET GO3 MOV BX,SEG GO3 MOV BX,SEG GO3 MOV WORD PTR ADDR32,AX MOV WORD PTR ADDR32,AX MOV W

35、ORD PTR ADDR32+2,BX MOV WORD PTR ADDR32+2,BX JMP ADDR32 JMP ADDR32 ; ; 在另一个段内在另一个段内 FGO3 LABEL FAR FGO3 LABEL FARGO3:GO3:4343关于标号的注意事项:关于标号的注意事项: 1. 1.条件条件转移指令,只能使用转移指令,只能使用短标号短标号,是,是段内段内转移,且转移,且转移的范围在转移的范围在128 128 至至 127127个字节内。个字节内。 2. 2.无条件无条件转移指令,可以是转移指令,可以是标号标号,也可以用某种寻址,也可以用某种寻址方式确定转移地址,方式确定转移地址,转移范围不受限制转移范围不受限制。设有如下程序段: JZ L1 ; ZF=0,对应的程序段A L1: . ; ZF=1,对应的程序段B 若程序段A,B的长度均大于128个字节,怎么办? JNZ L0 JNZ L0 JMP L1 JMP L1 L0: . ; A L0: . ; A L1: . ; B L1: . ; B4444例4:根据不同的输入,执行不同的程序片段。见程序:c4_108_4.asm构造指令地址列表输入1,执行程序段 LP1 :输入2,执行程序段 LP2 :输入3,执行程序段 LP3 : JMP LP1JMP LP2 .

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论