东南-微机接口第二章微型计算机指令系统续_第1页
东南-微机接口第二章微型计算机指令系统续_第2页
东南-微机接口第二章微型计算机指令系统续_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

11 )+111 )+1加操作,[SI]MOVBL E[ 算术运算(Arithmetic)指令 例:MOVBX,OFFSETFIRST多位数连加MOVSI,OFFSETMOVAX,H1+H2ADD[BX],MOVAX,[SI+2];H 指令:目标操作数加1ADC[BX+2],AX;H1+H2(H2)类似P75例2.65字节INC(IncrementbyINC INCDL?问题2:如何在二进制运算INCBYTEPTR[BX础上实现十进制BCD运算-指微机系统与接];INCWORDPTR东南大 ?问题1算术运算(Arithmetic)指令 ADDAddition)加法:8位/16位操作数,影响FLAGS3AH+72H=ACH,没有进位:CF=0结果不是零:ZF=0 D7=1:SF=1产生溢出:OF=1 4个1,偶数个1:PF1BBH+72H=(1)2DH,有进位:CF=18EH72H=(1)00H,结果是零:ZF D7=0:SF=0BBH+72H=(1)2DH,没有溢出:OF=0*应该利用哪个标志,由程序员来决定如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。微机系统与接东南大 第二章微型计算机指令系统(续8086/8088指令系统(六大类数据传送(DATA通用I/O目标地址传送/算术运算逻辑运算与位操作串操作(String转移控制(ControlMPU控制(ProcessorControl)东南大 MOVAL,100;MOVMOVDS,AX;MOVCX,BX;MOV AX,[2000H];MOVALBUFFER(存MOVCS:[2000H], MOVAXMOVVMOV[BXMOVDX,[BX][DI+900H];MOVPUSH LEAPOP LDSSI,东南大 数据数据传送与寻址微机系统与接东南大 数据传送指令两个操作数两个操作数不能都 段寄存器的操作有一些限段寄存器 寄存器,对他们的操作能力有寻址方式ADD(Addition)加法:8位/16位操作数,影响ADDdest,src;ADDAX,[BX]; ADDCL,10H;ADDSP,2;ADD[2000H],AL;ADDWORDPTR[BX],例 ADDAL,AHSF=1,CF=0ZF=0;AF=1;PF(EVEN)=0;OF=1CF=1作为无符号数相加进位(字节/字OF=1当作为有符号数相加溢出(-128~127/-算术运算(Arithmetic)指令 微机系统与接东南大 令BCD法算令BCD法算术运算(Arithmetic)指令 微机系统与接9算术运算(Arithmetic)指令AAA*(ASCIIadjustforAddition)非压缩BCD(单字节)只对UnpackedBCD(00-09H)有意义;等效:IF((AL)&(0FH)>9)OR(AF)=1THEN(AL)+6;AH+1;AF=CF=1;(AL)&0FHELSE(AL)&0FH;(应例:MOVMOVADD 微机系统与接 东南大 AAA*(ASCIIadjustforAddition)P77例2.7LEASI,STRING1LEALEADI,SUMMOVAL,[SI]ADCAL,[BX]MOV[DI],ALMOVAL,[SI+1];如以ASCII存放SUBSUB 调MOVASCII码BCD带进位(CF)加东南大 算术运算(Arithmetic)AAA*(ASCIIAAA*(ASCIIadjustfor √P77例2.74609 LEASI,STRING1LEADI,SUMMOVCX,4INC…DECCX程序流程图/面向过(循环/条件指令)结算术运算(Arithmetic)指令 微机系统与接东南大学DAA*(DecimaladjustforAddition)压缩BCD加法调(单字节)只对PackedBCD(00-99H)有意义等效:IF((AL)&(0FH)>9)OR(AF)=1THEN(AL)+6AF=1;((AL)&(9FH)>9)OR(CF)=1THEN(AL)+60H;例: 得到压缩BCDMOVADDAL,BL;(AL=C1H,AF=1);DAA;(CF=1=AFAL=27H,可连加)打*算算术运算(Arithmetic)指令 减 乘 除 AAS/DAS*(调整 IMUL(有符号乘 IDIV(有符号除例:减法:CF=1SUBAL,CH; SUBBYTEPTR[2000H],20SBBAX,[BP DEC DECWORDPTRDECBYTEPTR微机系统与接东南大学打*东南大学微机系统与接NEGNEGdest; (dest)←0-(dest)改F例:NEGALNEGBX;NEGBYTEPTRCS:[2000H]AL=30HNEGALD0H(-48)CMPCompare)(dest)-(src)改例:CMPAL,CH; CMPBYTEPTR[2000H],20JCNEXT;利用FLAGS结果,无符号数比JGNEXT有符号数比较满足SFOF=0时算术运算(Arithmetic)指令 6算术运算(Arithmetic)指令16位乘法MUL6算术运算(Arithmetic)指令16位乘法MULCX;MULWORDPTR默认AX*OPRD积=DX(高16位)|AX(低16位8位乘 MULCL;MULBYTEPTR默认 积=例:AL=42H(66),CL=28H(40)MULCLAX=0A50H(2640)AX,0A50H,MULCXDX/AX=0020H/微机系统与接 东南大学算术运算(Arithmetic)指令16位除法DIVCX;DIVWORDPTR默认被除数DX(高16位)|AX(低16位/OPRD(1除0/结果余数商 (字节除商2558位除法DIV DIVBYTEPTR[BX+1]字:>65535)默认AX/OPRD(字节)结果AH=余数AL=例:DX=20H,AX=0FDF2HSI=333HDIVSIAX=0A50HDX=0002H DIVCL0028H微机系统与接 东南大学算术算术运算(Arithmetic)指令IMUL/IDIV有符号数乘/除CBW/CWD符号扩 打*指令一般了AAM*(ASCIIadjustforMultiply)AL(<100)转换成UnpackedBCD(00-09H)到AX等效:AH(AL)/10;(商);(AL)(AL)%10(余数)SF,ZF,PF单字节!AAD*(ASCIIadjustforDivide):UPKed-BCDAX:AL=AH*10+AL;AH=0单字节!微机系统与接 东南大学微机系统与接逻辑运算 ANDAX,[BX];ANDORdest, ORORWORDPTR[BX],XORdest,src(logicalExclsiveorXORAX,AX;XORCL,NOTdest;B:dest=255-dest;W:dest=65535-NOTAL;NOTWORDPTR[BX]NOTBYTEPTRES:[2000H]逻辑逻辑运算—位操作/.置位(1)ORAL,ORCL,复位(0)ANDAL,TEST 逻辑与测TESTAL,80H;TESTAX,0FFFFH;ZF=ANDAL,80H;ANDAX,0FFFFH.TEST与AND的差别.位判微机系统与接东南大学微机系统与接东南大学逻辑移位(Logical1位/CL位相当于无符号数*2SHL/SALdest,1;SHLAL,1;SHLCX,1SHL/SALdest,CL SHLWORDPTR[BX],CLCFdest(MSB… 当MSB≠CF则OF=1SHR(Shiftlogicalright) SHRdest,1(CL)算术移位(Arithmetic算术移位(ArithmeticSAR(ShiftArithmetic 带符号SARdest,1;SARdest,CLMOVAL,SARAL,1;/2AL=SARAL,1;SARB(C4H=-B,0FFH=- /2-1不变/2-东南大学循环移位指令(RotateROL(RotateROLdestBROLAL,1BROR(RotateRORdestRORWORDPTR[BX],CLB8位或16位操作数移位/RORAL1B东南大学RCL(RotateThroughCarryFlagRCLdestDmaxD1RCRdest1/CL (高低顺序交换微机系统与接东南大学 串操作(String MOVSB-W/CMPSB-W/SCANSB- 方向SI=srcpointer(DS)DI=destpointer(ES)DF控INC(DF=0)/DECB+-1/W+-重复前缀:微机系统与接东南大学CX个单 串 串操作功能与默认操作 微机系统与接东南大学REP(Z)MOVS(CX次REPE(Z)CMPS/SCAS(重复至CX=0或REPNE(ZF=0)Repeatwhile(CX≠0andZF=0)。以指令--重复前缀本身影响标志位(CX-MOVSBW((ES):(DI))((DSSI))不影响标志CMPSB/W---((es):(di))-((ds):(si))影响标志 (AL)/(AX)–((ESDI影响标志LODSB/W(loadString):(AL/AX)((DS):STOSB/W(Storestring):(AL/AX)((ES):转移控制(ControlTransfer)-程序微机系统与接东南大学转移指令---无条件跳转(UnconditionalCS:IPInstructionPointer下条指令地址(指针JMPSHORT_LABEL;近短IPSHORT向前 NEAR_LABELIP=IP+disp16段内跳转JMP 段间地址CS:IP=新地址JMPSHORTJMPNEARPTRJMPFARPTRREG16/mem16JMP JMP JMP0FFFFH:0(热启动JMPFARPTRTABLE[SI];JMPNEARPTR转移指令---条件跳转(conditional转移指令---条件跳转(conditional(利用CMP,TEST,计算,移位指令等结果改变程序流JCCSHORT_LABEL;限近短跳IP满足条件IP=IP+disp8,否则顺序执行(IFELSE)JZ/JE--JNZ/JNE (ZF)=1--(ZF)=0东南大学--(SF)=1--(PF)=0----(OF)=1----(CF)=1--JB/JNAE-- (CF)=1-JA/JNBE--JNA/JBE OR(ZF)=1(运算++,+-,--,-+后)JL/JNGE--JNL/JGE(SF)≠(OF)&(ZF)=0---(SF)=(OF)东南大学LOOPLOOPshort_label;loopCXLOOPZ/LOOPEshort_label;(loopwhile循环直到(CX)=0orLOOPNE/LOOPNZshort_label;(Loopwhile循环直到(CX)=0or ifCX=0Jumpto(JumpOnCXCX为零控制调.循环跳转超过-128/+127Dowhile/whileDo/Fori=0;i<100;i++)的实微机系统与接东南大学(Callaprocedure微机系统与接东南大学过程(Procedure);如果一些程序模块需要在不同地方多次反复地出现使用,则可以将这些程序模块设计成过程,每次需要时进行调用。过程结束(相当于高级语言中的子程序Subroutine,或函数缩短源程 需要利用堆栈技术,控制与(Callaprocedure微机系统与接东南大学CALL段内\段间:直接/间接调用(过程/子程序RETRETF)(分远近,产生不同RET码(CallaprocedureCALL(SP)(SP)-CALL CALL(SP)(SP)-2,((SP)+1,(SP))(CS);(CS)SEGCALL (CS)MEM32+2,例:CALL2000H;CALL CALLNEARPTRCALL2000:3000H;CALLFAR微机系统与接 东南大学S(S(ReturnFromCall东南大学RET(C3H);(IP)((SP)+1:(SP)),RETpop_value;(C2Hdata_low(IP)((SP)+1:(SP)), RETF(CBH);(IP)((SP)+1:(SP)), pop_value(CAHdata_lowdata_high)IP:CSC函数调 传递参数从右到左压入堆栈,再压入返回地(W/DW)后转移,返回后修改SP(ADDSP,n); pact)IntT_PROC(inta,intb);C函数_T_PROCprocNEAR;汇编子程序(过程PUSHBP; [BP]=保存BP,[BP+2]=RET_IP,[BP+4]=a[BP+6]=bPOP 返回后ADD 返回值:char,short,int=AX,float,double:AX=EA,long:DX,AX;NearPointer:AX,FarPointer:DX,AX 东南大学 中断指令 中断指令 微机系统与接东南大学软件中断:8086支持在程序中安排一条中断指令引起8086/8088:中断0-FFH,每个占用4字节中断向量(CS:IP) 区:0000:0000~03FFHn号中断向 在0000:4*n~0000:4*n+3单 中断指令 INT(Interrupt)INTn (n中断类型号(SP)(SP)-2,((SP)+1,(SP))(FLAG断 (IF)0(SP)(SP)-2,

温馨提示

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

评论

0/150

提交评论