版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章程序设计3.1乘除法指令3.2BCD数调整指令3.3顺序程序设计3.4分支程序设计3.5循环程序设计进行乘法时:8位*8位→16位乘积 16位*16位→32位乘积(1)无符号数的乘法指令MUL(MEM/REG)格式:MULsrc操作:字节操作数(AX)
(AL)×(src)
字操作数(DX,AX)
(AX)×(src)指令例子:
MULBL;(AL)×(BL),乘积在AX中
MULCX;(AX)×(CX),乘积在DX,AX中
MULBYTEPTR[BX]3.1乘除法指令
1.乘法指令格式与MUL指令类似,只是要求两操作数均为有符号数。指令例子:
IMULBL;(AX)←(AL)×(BL)IMULWORDPTR[SI];(DX,AX)←(AX)×([SI+1][SI])
(2)有符号数乘法指令IMUL注意:MUL/IMUL指令中
●AL(AX)为隐含的乘数寄存器;
●
AX(DX,AX)为隐含的乘积寄存器;
●
SRC不能为立即数;
●除CF和OF外,对其它标志位无定义。格式:DIVsrc操作:字节操作(AL)
(AX)/(SRC)的商
(AH)
(AX)/(SRC)的余数字操作(AX)
(DX,AX)/(SRC)的商
(DX)
(DX,AX)/(SRC)的余数指令例子:
DIVCLDIVWORDPTR[BX]注:若除数为零或AL中商大于FFH,(或AX中商大于FFFFH),则CPU产生一个类型0的内部中断(除法错误中断)。(1)无符号数除法指令DIV(2)有符号数除法指令IDIV格式:IDIVsrc操作与DIV类似。商及余数均为有符号数,且余数符号总是与被除数符号相同。注意:
对于DIV/IDIV指令AX(DX,AX)为隐含的被除数寄存器。
AL(AX)为隐含的商寄存器。
AH(DX)为隐含的余数寄存器。
src不能为立即数。
对所有条件标志位均无定义。除法运算要求被除数字长是除数字长的两倍,若不满足则需对被除数进行扩展,否则产生错误。对于无符号数除法扩展,只需将AH或DX清零即可。对有符号数而言,则是符号位的扩展。可使用下面介绍的符号扩展指令CBW和CWD关于除法操作中的字长扩展问题3.扩展指令格式:CBW;把AL的符号位复制到AHCWD;把AX的符号位复制到DX用途:用于有符号数的除法。例如:(AL)=A7H,则执行CBW后,AH的内容为FFH。3.2BCD数调整指令专用于对BCD码运算的结果进行调整包括:DAA、AAA、DAS、AAS、AAM、AAD均为隐含寻址,隐含的操作数为AL和AH为何要对BCD码的运算结果进行调整?
BCD码本质上是十进制数,即应遵循逢十进一的规则。而计算机是按二进制(十六进制)进行运算,并未按十进制规则进行运算。3.3顺序程序设计3.4分支程序设计3.5循环程序设计无条件转移指令条件转移指令分支程序设计举例转移指令的实质:改变IP(或CS)的内容。
所有转移指令不会影响标志位。
分为无条件转移和条件转移两种。(1)无条件转移指令-JMP本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。条件转移指令可实现程序的条件分支。条件转移指令根据标志位的状态来决定是否进行分支转移。格式:
JXXlabel ;xx为条件名称缩写指令的转移范围为-128~+127字节。(2)条件转移指令-JXX①根据单个标志位设置的条件转移指令JB/JC;低于,或CF=1,则转移JNB/JNC/JAE;高于或等于,或CF=0,则转移JP/JPE;奇偶标志PF=1(偶),则转移JNP/JPO;奇偶标志PF=0(奇),则转移JZ/JE;结果为零(ZF=1),则转移JNZ/JNE;结果不为零(ZF=0),则转移JS;SF=1,则转移JNS;SF=0,则转移JO
;OF=1,则转移JNO
;OF=0,则转移这类指令主要用来判断两个数的大小。判断无符号数的大小JA高于则转移条件为:CF=0∧ZF=0,即A>BJNA/JBE低于或等于则转移条件为:CF=1∨ZF=1,即A≤B②根据组合条件设置的条件转移指令JG;大于则转移(A>B)条件为:(SF⊕OF=0)∧ZF=0JGE;大于或等于则转移(A≥B)条件为:(SF⊕OF=0)∨ZF=1JLE;小于或等于则转移(A≤B)条件为:(SF⊕OF=1)∨ZF=1JL;小于则转移(A<B)条件为:(SF⊕OF=1)∧ZF=0判断有符号数的大小循环控制指令用在循环程序中以确定是否要继续循环。循环次数通常置于CX中。转移的目标应在距离本指令-128~+127的范围之内。循环控制指令不影响标志位。3.5循环程序设计(1)LOOP格式:LOOPlabel操作:(CX)-1→CX;若(CX)≠0,则转至label处执行;否则退出循环,执行LOOP后面的指令。LOOP指令与下面的指令段等价:
DECCX JNZlabel(2)LOOPZ(LOOPE)格式:LOOPZ
label操作:(CX)-1→CX;
若(CX)≠0∧ZF=1,则转至label处执行;否则退出循环,执行LOOP后面的指令。(3)LOOPNZ(LOOPNE)格式:LOOPNZlabel操作:(CX)-1→CX;若(CX)≠0∧ZF=0,则转至label处执行;否则退出循环,执行LOOP后面的指令。(4)根据CX内容来决定是否转移的转移指令
JCXZlabel
若(CX)=0,则转移到label处开始执行。举例:例1:给1A000H开始的256个内存单元均减去1,若发现某个单元减为0则立即退出循环,其后的单元不再减1。
MOVAX,1A00HMOVDS,AXMOVDI,0MOVCX,256GOON:DECBYTEPTR[DI]INCDICMPBYTEPTR[DI-1],0LOOPNZ
GOONHLT例2:在8000H开始的长度为1000字节的字符串中查找’S’,若找到,把其偏移地址记录在ADDR中,否则ADDR单元置为0FFFFH。MOVDI,8000HMOVCX,1000MOVAL,’S’MOVADDR,0FFFFHGOON:SCASBLOOPNZ
GOONJNZDONEDECDIMOVADDR,DIDONE:HLT3.6串操作指令串操作指令就是用一条指令实现对一串字符或数据的操作。串操作指令的特点:
1.可以对字节串或者字串进行操作;
2.源串用DS段SI作间接寻址,目的串用ES段DI作间接寻址。每次串操作后,SI和DI会自动修改,修改的方向与DF有关。
3.串操作时,地址的修改与方向标志DF有关。
DF=0,增址
W=1,字(SI+2
SI,DI+2
DI)
W=0,字节(SI+1
SI,DI+1
DI)
DF=1,减址
W=1,字(SI-2
SI,DI-2
DI)
W=0,字节(SI-1
SI,DI-1
DI) 4.可以加重复前缀:(相当于一个循环程序的运行)
修改CX并进行判断
REPCX到0不再重复;
REPE/REPZZF=1或CX=0不再重复;
REPNE/REPNZZF=0或CX=0不再重复。串操作指令有5类:1.字符串传送MOVSB/MOVSW2.字符串比较CMPSB/CMPSW3.字符串检索SCASB/SCASW4.取字符串LODSB/LODSW5.存字符串STOSB/STOSW串操作指令是唯一的一组能直接处理源和目的操作数都在存储器中的指令3.6子程序设计子程序的概念子程序的调用和返回指令子程序及其调用程序设计过程的定义及功能调用3.6.2.子程序/过程调用和返回指令过程(子程序)一段具有特定功能的,供其它程序调用的公用程序。特点调用子程序时,IP(CS)的内容被压入堆栈栈顶。从子程序返回时,栈顶的内容又被弹出到IP(CS)。子程序执行结束后一般均要返回调用程序。一次定义,多次调用;可带参数调用,以完成不同的功能。优点程序代码短,结构清晰,便于编程、调试、修改和阅读。两条相关指令:子程序调用指令CALL子程序返回指令RET段的定义段的定义通过SEGMENT和ENDS伪指令进行。定义一个段的格式是:段名
SEGMENT[定位方式][组合方式]['类别名']
段名ENDS
其中,SEGMENT和ENDS必须成对出现,它们的前面需有相同的名字,该名字为段名。
DATASEGMENTBUFDB'ABCDEF'COUNTEQU$-BUFDATAENDS
常量COUNT的值就是变量BUF数据区所占的存储单元数16。
$可以用作指令的操作数,此时$的值就是该指令的偏移地址。
$也可以出现在表达式中。如:$的值可以用伪指令ORG来设置。其格式是:
ORG数值表达式功能是将$设置成数值表达式的值(0000H~FFFFH之间的整数)。e.gORG$+8
调用方法设置入口参数在AH设置功能号m执行中断指令INTN分析、应用出口参数
1.1号功能调用
MOVAH,1INT21H
执行该调用时将等待键入,一旦有键按下就将该按键字符的ASCII码读入AL,并同时显示该字符。
2.2号功能调用
MOVDL,待显示字符的ASCII码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购合同风险防范与案例分析解析分享3篇
- 采购合同评审总结3篇
- 舞蹈学校的学员评价与反馈机制-洞察分析
- 采购合同范文电子版3篇
- 采购法务与合同的合同审查要点3篇
- 采购合同皮草的进出口规定3篇
- 采购合同制定高效协作的关键3篇
- 采购合同销售合同的修改与终止3篇
- 采购合同评审表的解答与指导3篇
- 安徽省马鞍山市(2024年-2025年小学六年级语文)部编版阶段练习((上下)学期)试卷及答案
- 具有明显首过消除的药物
- 幼儿园采购索证索票制度
- 迈达斯桥梁建模
- 新产品试制流程管理办法
- 幼儿园中班个人工作计划幼儿园中班个人工作计划范例2021.doc
- 常见繁体字的简化表 香港人简体字教学
- 《教育经济学》试题及答案
- 塑料模具肥皂盒设计说明书
- 穿越河流工程定向钻专项施工方案
- 社会主义新农村建设建筑废料利用探究
- 火炬介绍 音速火炬等
评论
0/150
提交评论