8088(8086)的指令系统课件_第1页
8088(8086)的指令系统课件_第2页
8088(8086)的指令系统课件_第3页
8088(8086)的指令系统课件_第4页
8088(8086)的指令系统课件_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

8088(8086)的指令系统一、IBMPC(8086/8088)指令系统二、数据传送指令三、算术运算指令四、逻辑运算指令五、串操作指令六、控制转移指令七、处理机控制指令一、IBMPC(8086/8088)指令系统

8086/8088指令系统可分为六组:

数据传送指令(Datatransfar);算术指令(Arithmetic);逻辑指令(Logic);串处理指令(Stringmanipulation);控制转移指令(Controltransfar);处理机控制指令(Processorcontrol);二、数据传送指令分类名称格式功能OSZAPC基本传送指令MOVDST,SRC字、字节传送不影响进栈指令PUSHOPRD字压入堆栈不影响出栈指令POPOPRD字弹出堆栈不影响交换指令XCHGDST,SRC字、字节交换不影响有效地址送寄存器指令LEAREG,SRC有效地址

寄存器不影响指针送寄存器及DS指令LDSREG,SRC地址指针

寄存器,DS不影响指针送寄存器及ES指令LESREG,SRC地址指针

寄存器,ES不影响输入指令INAL,PORT外设数据AL不影响输出指令OUTPORT,ALAL外设数据不影响换码指令XLATAL中数据转换不影响读取标志指令LAHFFlag低字节AH不影响设置标志指令SAHFAHFlag低字节

ZAPC标志寄存器入栈指令PUSHF把Flag内容压入堆栈不影响标志寄存器出栈指令POPF把Flag内容弹出堆栈OSZAPC通用数据传送指令地址传送指令累加器专用指令标志寄存器传送指令1.通用数据传送指令

(1)基本传送指令MOVDST,SRC

源操作数——寄存器、存储器、立即数目的操作数——寄存器、存储器执行的操作:DST

SRC

CPU内部寄存器之间的数据传送(除CS,IP外)

MOVAL,BLMOVDX,DIMOVSI,BPMOVDS,BXMOVAX,DX•

立即数传送到CPU内部通用寄存器组(AX,BX,CX,DX,BP,SP,DI,SI)

MOVCL,4MOVDX,03FFHMOVDI,04BFH

CPU内部寄存器(除CS,IP外)与存储器(所有寻址方式)之间的数据传送

MOVBX,BUFFERMOV[DI],CXMOVAL,[2000]MOVSI,BLOCK[BP]MOVAX,[SI]MOVDS,DAT[SI+BX]

立即数给存储单元赋值

MOVWORDPTR[2000],10MOVBYTEPTR[BX+DI],30

例1:把地址为AREA1(段内偏移量)的存储单元的内容,传送至同一段内的地址为AREA2的存储单元中。AREA1AREA265F3020024E00500MOVAREA2,AREA1MOVAL,AREA1MOVAREA2,AL注意事项:1.立即数不能直接送段寄存器MOVDS,3000H2.目标操作数不允许用立即数方式MOV2000H,AL3.不允许在两个存储单元间传送数据MOV[2000H],[3000H]4.不允许在两个段寄存器之间传送数据MOVDS,ES5.MOV指令不影响标志位。例2:若要传送的不是一个字节,而是一个数据块,(例如内有100个字节),如何实现?movsi,offsetarea1movdi,offsetarea2movcx,100Again:moval,[si];mov[di],alincsiincdideccxjnzagainint3AREA1AREA265F302……0500100=Leasi,area2

(2)栈操作指令

PUSHOPRD

POPOPRD

堆栈——按照先进后出的原则组织的一段内存区域。8088中规定堆栈设置在堆栈段(SS段)内,堆栈指针SP的初值决定了堆栈的大小。

SP始终指向堆栈的顶部,即始终指向最后推入堆栈的信息所在的单元。

操作数:

16位通用寄存器;段寄存器;

16位内存操作数(除立即数之外的任何寻址方式)。

00000SS:0000SS:SP堆栈段PUSHAX指令分两步执行:1.先SP-1SP,将AH内容送至SP所指单元;2.再SP-1SP,将AL内容送至SP所指单元;例:MOVAX,1234HPUSHAX执行的操作:POPAX指令分两步执行:1.先将SP所指单元内容送至AL,然后

SP+1SP;2.再SP所指单元内容送至AH,然后

SP+1SP例:MOVAX,5678HPOPAX(3)交换指令XCHGOPRD1,OPRD2

在寄存器间或寄存器与存储器间交换信息(不允许使用段寄存器)。

源操作数:寄存器、存储器目的操作数:寄存器、存储器执行的操作:(OPRD1)

(OPRD2)结果:(BX)=1234H(2F246H)=6F30H例:XCHGBX,[BP+SI](BX)=6F30H(BP)=0200H(SI)=0046H(SS)=2F00H(2F246H)=1234H2.地址传送指令LEA,LDS,LES

把地址传送到指定寄存器。DS=1000h10100h000200200100hBXbuffer(1)LEA——有效地址送寄存器。

LEAREG,SRC

(REG)(SRC)

目的操作数源操作数

(16位通用寄存器)(内存操作数)

该指令常用来设置一个16位的寄存器作为地址指针;

该指令的执行效果与movreg,offsetsrc

相同。例:leabx,[100]

执行后bx=100h

leabx,buffer

(2)LDS

把源操作数指定的内存的4个相继字节的内容送至指定寄存器及DS中

LDSREG,SRC

(REG)(SRC)(DS)(SRC+2)

目的操作数源操作数

(16位通用寄存器)(内存操作数)

该指令完成一个32位地址指针的传送;

该指令通常指定SI作寄存器REG。DS=1000h10100h000200200200h2000hSIDS例:LDSSI,[100H]

(3)LES

把源操作数指定的内存的4个相继字节的内容送至指定寄存器及ES中。

LESREG,SRC

(REG)(SRC)(ES)(SRC+2)

目的操作数源操作数(16位通用寄存器)(内存操作数)

(1)该指令完成一个32位地址指针的传送;

(2)该指令通常指定DI作寄存器REG。ES=1000h10100h000200200200h2000hDIES例:LESDI,[100H]3.累加器专用指令IN,OUT,XLAT

(1)输入输出指令

PC机中,所有I/O端口与CPU之间的通信都有IN,OUT指令完成。

长格式:INAL,PORTOUTPORT,AL

PORT——端口地址

短格式:INAL,DXOUTDX,ALBX(首地址)AL(位移量)30313233…换码表(内存)(2)换码指令XLAT

功能:

将AL指向的换码表中的一个字节的内容送到AL中。

操作数:隐含的寄存器BX,AL

操作:AL(BX+AL)4.标志寄存器传送指令

(1)

读取标志指令LAHF

功能:把Flag的低字节内容装入寄存器AH中。

操作数:隐含的操作数标志寄存器Flag,AH

执行的操作:AHFlag的低位字节。(2)设置标志指令SAHF

功能:把Ah的内容装入Flag的低字节。操作数:隐含的操作数标志寄存器Flag,AH

执行的操作:Flag的低位字节

AH

O

DIT

SZAPCD7D6D4D2D0FlagAH

O

DIT

SZAPCFlagAHD7D6D4D2D0注:该指令影响标志位S、Z、A、P、C(3)

标志寄存器入栈指令

PUSHF

功能:将标志寄存器Flag的内容压入堆栈保存。(4)

标志寄存器出栈指令

POPF

功能:把栈中内容弹出至标志寄存器Flag。

注:该指令影响标志位O、S、Z、A、P、C。三、算术运算指令分类名称格式功能OSZAPC加法指令ADDDST,SRC加法(字、字节)OSZAPC带进位加法指令ADCDST,SRC带进位加法(字、字节)OSZAPC加1指令INCOPRD加1(字、字节)OSZAP减法指令SUBDST,SRC减法(字、字节)OSZAPC带借位减法指令SBBDST,SRC带借位减法(字、字节)OSZAPC减1指令DECOPRD减1(字、字节)OSZAP比较指令CMPDST,SRC比较(字、字节)OSZAPC求补指令NEGOPRD求补码OSZAPC无符号数乘法MULSRC不带符号数乘法(字,字节)OC带符号数乘法IMULSRC带符号数乘法(字,字节)OC无符号数除法DIVSRC不带符号数除法(字,字节)带符号数乘法IDIVSRC带符号数除法(字,字节)符号扩展指令CBW扩展AL中的符号不影响符号扩展指令CWD扩展AX中的符号不影响加法指令减法指令乘法指令除法指令十进制调整指令1.加法指令

ADDDST,SRC

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DST+SRC

注:该指令影响标志位

注意:该指令适合有符号数和无符号数的运算。

DST+SRC

OSZAPC00100

1

00

0

例1:MOVDX,4652HADDDX,0f0f0H4652+f0f0

374210100011001010010+111100001111000000110111010000111执行后:(DX)=3742H

Z=0S=0C=1O=0

对无符号数溢出结果错对有符号数不溢出结果正确

问:对带符号数和无符号数怎样判断是否溢出?带符号数的溢出用溢出标志O判断;无符号数的溢出用进位标志C判断。

ADCDST,SRC

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DST+SRC+C

功能:主要用于多字节运算

注:该指令影响标志位

注意:该指令适合有符号数和无符号数的运算。DST+SRC+C

OSZAPC

00100

1

00

0

例2:在内存的First和Secontd开始的区域中分别存放着2F365H和5E024H两个数,要求求其和,并存入Third中。

2F365+5E0248D389

FirstSecondThird65F3020024E00500

2F365F365+5E024+E0248D389D38910002+0005000821FirstSecondThird65F3020024E0050089D30800MOVAX,FirstADDAX,SecondMOVThird,AXMOVAX,First+2ADCAX,Second+2MOVThird+2,AXINCOPRD

操作数:通用寄存器、存储器(不能是段寄存器或立即数)执行的操作:OPRD

OPRD+1

功能:用于在循环中修改地址指针及循环次数等。

注:该指令影响标志位

例:INCBXINCbyteptr[SI]

注意:(1)该指令将操作数视为无符号数;

(2)该指令不影响进位标志C

OPRD+1

OSZAP00100

1

00

0

2.减法指令

SUBDST,SRC

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DST-SRC

注:该指令影响标志位

注意:该指令适合有符号数和无符号数的运算。

DST-SRC

OSZAPC00100

1

00

0

SBBDST,SRC

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DST-SRC

–C

注:该指令影响标志位

注意:该指令适合有符号数和无符号数的运算。DST–SRC-C

OSZAPC00100

1

00

0

注意:同加法指令有符号数的溢出用溢出标志O判断;无符号数的溢出用进位标志C判断。例:SUBDH,[BP+4](DH)=41H(SS)=0000H(BP)=00E4H(00E8H)=5AH结果:(DH)=0E7HS=1Z=0C=1O=0

如果为有符号数则结果正确(无溢出)如果为无符号数则结果错误(有溢出)

41-5AE7

01000001-010110101110011111例3:32位数运算W=X+Y+24-ZXYZW65F3020024E0050089D30800MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2;X+YADDAX,24ADCDX,0;X+Y+24SUBAX,ZSBBDX,Z+2;X+Y+24-ZMOVW,AXMOVW+2,DX;送入wDECOPRD

操作数:通用寄存器、存储器(不能是段寄存器或立即数)执行的操作:OPRD

OPRD-1

功能:用于在循环中修改地址指针及循环次数等。

注:该指令影响标志位

例:DECBXDECwordptr[SI]

注意:(1)该指令将操作数视为无符号数;

(2)该指令不影响进位标志C

OPRD-1

OSZAP00100

1

00

0

NEGOPRD

操作数:通用寄存器、存储器执行的操作:求补指令,将操作数按位取反后加1,再送回操作数。

注:该指令影响标志位

OPRD

OSZAPC00100

1

00

0

CMPDST,SRC

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:

DST-SRC

注:该指令影响标志位

注意:(1)该指令同SUB,但其不保存运算结果;

(2)该指令后面通常跟一条转移指令,根据标志位产生不同的程序分支。DST-SRC

OSZAPC00100

1

00

0

比较指令主要用于两个数之间的关系:大、小、相等。如:A,B1.比较相等。只要看Z标志。Z=1——相等

Z=0——不相等。2.比小大小。分两种情况。

无符号数看进(借)位C标志。

A=A0H10100000A=53H01010011

B=53H-01010011B=A0H-10100000

01001101

00110011

A>BA<B

1结论:C=1A<BC=0A>B•

带符号数

*同号:不会溢出O=0,用符号位S判断

A=24H00100100B=44H-01000100O=0

S=0A>B11100000

S=1A<B*异号:可能会溢出,用溢出位O和符号位S

判断有溢出:

A=7FH01111111

B=F0H-11110000O=1S=1A>B

10001111

S=0A<B

无溢出:

A=3FH00111111

B=F0H-11110000O=0S=0A>B

01001111S=1A<B

结论:O⊕

S=0A>BO⊕

S=1A<B8088中有几条用于判断有符号数大小的转移指令,如:

JG/JNLE大于则转移条件为:O⊕

S=0且

Z=0

JL/JNGE小于则转移条件为:O⊕

S=1

同样有几条用于判断无符号数大小的转移指令,如:

JA/JNBE高于则转移条件为:C=0且Z=0

JBE/JNA低于或等于则转移条件为:C=1或Z=1

例4:比较两个无符号数的大小,并将大数存入AL中。

XY65F3020024E0结果结果AL=F3

MOVAL,XMOVBL,YCMPAL,BL;AL-BL

JNCNEXT;65-F3

MOVAL,BLNEXT:HLTDST-SRC

OSZAPC00100

1

00

0

例5:比较两个带符号数的大小,并将大数存入AL中。结果AL=65MOVAL,XMOVBL,YCMPAL,BL

;AL-BLJGNEXT;65-F3MOVAL,BLNEXT:HLTXY65F3020024E0DST-SRC

OSZAPC00100

1

00

0

例6:若自Block开始的内存中有100个带符号数,找出最大值存入Max单元。Block65F3020024E00500MOVBX,OffsetBlockMOVAX,[BX]INCBXINCBXMOVCX,99Again:CMPAX,[BX]JGNEXTMOVAX,[BX]Next:INCBXINCBXDECCXJNZAgainMOVMAX,AXHLTMax例7:在分别由Data1和Data2开始的两个内存区域中,分别存放着5个1字节的无符号数,如果Data1中的第N个数大于Data2中的第N个数,则进行

Data1[N]-Data2[N]运算,否则进行Data1[N]+Data2[N]运算,运算结果存回Data1中Data1Data265F3020024E0050089D3LEASI,Data1LEADI,Data2MOVCX,100Again:MOVAL,[SI]CMPAL,[DI]JCAdddat

SUBAL,[DI]JMPNextAdddat:ADDAL,[DI]Next:MOV[SI],ALINCSIINCDIDECCXJNZAgainHLTData1Data265F3020024E0050089D33.乘法指令

MULSRC——无符号数乘法

源操作数:通用寄存器、存储器(不能是立即数)目的操作数:DX,AX(隐含)执行的操作:字节操作(AH,AL)

(AL)

(SRC)字操作(DX,AX)

(AX)

(SRC)注:该指令影响标志位

AL

SRC

OC00100

1

00

0

注意:若结果的高半部分(字节相乘为AH,字相乘为DX)为0则C=0,O=0

为1则C=1,O=1IMULSRC——带符号数乘法

源操作数:通用寄存器、存储器(不能是立即数)目的操作数:DX,AX(隐含)执行的操作:字节操作(AH,AL)

(AL)

(SRC)字操作(DX,AX)

(AX)

(SRC)

注:该指令影响标志位

AL

SRC

OC00100

1

00

0

注意:若结果的高半部分不是低半部分的符号扩展的话,则C=1,O=1

否则C=0,O=0符号扩展:从8位扩展到16位(例:20H)

+20H

0010000000000000,00100000-20H1110000011111111,11100000符号位MOVAL,0B4HMOVBL,11HMULBL例:求B4*114.除法指令

DIVSRC——无符号数除法

IDIVSRC——带符号数除法

源操作数:通用寄存器、存储器(不能是立即数)目的操作数:DX,AX(隐含)执行的操作:字节操作(AL)(AX)/(SRC)——

(AH)(AX)/(SRC)——

余数字操作(AX)(DX,AX)/(SRC)——

(DX)(DX,AX)/(SRC)——

余数

注:该指令对各标志位均无定义。注意:SRC的类型决定是字或字节相除。符号扩展指令

CBW——

扩展AL寄存器中数据的符号,并将其存入AH寄存器中。

若AL<80H则扩展后AH=0

若AL>=80H则扩展后AH=FFHCWD——

扩展AX寄存器中数据的符号,并将其存入DX寄存器中。若AX<8000H则扩展后DX=0

若AX>=8000H则扩展后DX=FFFFH

注:该指令不影响标志位。例9:计算w=(v-(x

y+z-540))/xx、y、z、v均为16位带符号数,分别存放在X、Y、Z、V单元中,求结果并送入W单元中。XYZVW65F3020024E00500MOVAX,XIMULY;结果在(DX,AX)中MOVCX,AXMOVBX,DX;结果送入(CX,BX)中MOVAX,ZCWD;CWD将AX中的字扩展成双字,结果在(DX,AX)中

ADDCX,AXADCBX,DXSUBCX,540SBBBX,0;结果在(CX,BX)中MOVAX,VCWDSUBAX,CXSBBDX,BX

;结果在(DX,AX)中

IDIVXMOVW,AXMOVW+2,DXw=(v-(x

y+z-540))/xXYZVW65F3020024E005005.十进制调整指令前面提到的所有运算指令都是二进制数的运算指令,怎样得到十进制的运算结果呢?8088提供了一套十进制调整指令。1.十进制数的表示

BCD码——

用二进制编码的十进制数。

压缩

00000001001000110100010101100111100010010123456789

非压缩UUUU0000UUUU0001UUUU0010UUUU100101292.调整原理以加法调整为例。

701111101+6+0110+01101311010011

D

0001001113(H)

不同的运算指令的调整方法不同,但道理是一样的。

13.调整指令

加法:

DAA

压缩的BCD码加法十进制调整指令。

AAA

非压缩的BCD码加法十进制调整指令。

减法:

DAS

压缩的BCD码减法十进制调整指令。

AAS

非压缩的BCD码减法十进制调整指令。

乘法:

AAM

非压缩的BCD码乘法十进制调整指令。

除法:

AAD

非压缩的BCD码除法十进制调整指令。四、逻辑运算指令分类名称格式功能OSZAPC逻辑与指令ANDDST,SRC与(字、字节)OSZPC逻辑或指令ORDST,SRC或(字、字节)OSZPC逻辑非指令NOTOPRD非(字、字节)不影响逻辑异或指令XORDST,SRC异或(字、字节)OSZPC测试指令TESTDST,SRC测试(字、字节)OSZPC逻辑左移指令SHLOPRD,COUNT逻辑左移(字、字节)OSZPC算术左移指令SALOPRD,COUNT算术左移(字、字节)OSZPC逻辑右移指令SHROPRD,COUNT逻辑右移(字、字节)OSZPC算术右移移指令SAROPRD,COUNT算术右移(字、字节)OSZPC循环左移指令ROLOPRD,COUNT循环左移(字,字节)OC循环右移指令ROROPRD,COUNT循环右移(字,字节)OC带进位循环左移指令RCLOPRD,COUNT带进位循环左移(字,字节)OC带进位循环右移指令RCROPRD,COUNT带进位循环右移(字,字节)OC逻辑运算指令移位指令循环移位指令1.逻辑运算指令

ANDDST,SRC——逻辑与

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DSTandSRC

功能:实现两个操作数的按位与运算。

注:该指令影响标志位使O=0,C=0,P,S,Z反映操作的结果。DST∧

SRC

OSZPC00100

1

00

0

例1:屏蔽AL寄存器的低四位。

MOVAL,FF11111111ANDAL,F0∧1111000011110000例2:屏蔽AL寄存器的高两位。

MOVAL,FF11111111ANDAL,3F∧0011111100111111使一立即数的该位为0即可使一立即数的该位为0即可AND通常用于使某些位置0,其它位不变的情况。ORDST,SRC——逻辑或

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DSTorSRC

功能:实现两个操作数的按位或运算。

注:该指令影响标志位使O=0,C=0,P,S,Z反映操作的结果。DST∨SRC

OSZPC00100

1

00

0

例3:使某数的第4、5位置1。

MOVAL,03H00000011

ORAL,30H∨0011000000110011使一立即数的该位为1即可OR指令通常用于将某些位置1XORDST,SRC——异或

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DST

DSTxorSRC

功能:实现两个操作数的按位异或运算。

注:该指令影响标志位使O=0,C=0,P,S,Z反映操作的结果。DST⊕

SRC

OSZPC00100

1

00

0

例6:使某数的D1、D0位取反,其它位不变。

MOVAL,11H00010001

XORAL,03H⊕0000001100010010

例7:测试AX中的数与42H是否相同,相同则转移。

XORAX,0042HJZNextNext:MOVBX,30H例8:给某寄存器清0。

XORAX,AXAX=0

结果给寄存器清0测试两操作数是否相等

使一操作数若干位维持不变,若干位取反使一立即数的相应位为1即可TESTDST,SRC——测试

源操作数:通用寄存器、存储器、立即数目的操作数:通用寄存器、存储器执行的操作:DSTandSRC

功能:实现两个操作数的按位与运算,结果不保存,只影响标志位。

注:该指令影响标志位使O=0,C=0,P,S,Z反映操作的结果。DST∧SRC

OSZPC00100

1

00

0

例4:检测AL中的最低位是否为1,若为1则转移。

MOVAL,data01000001TESTAL,01H∧00000001JNZNext00000001

Next:MOVBL,0TEST通常用于检测一些条件是否满足,但又不希望改变原来操作数的情况,该指令后通常带有条件转移指令。

01010000∧0000000100000000例5:检测CX内容是否位0,为0则转移。

TESTCX,0FFFFHJZNext

Next:MOVAX,1

CMPCX,0JZNextNext:MOVAX,1

01010001∧

111111110101000100000000∧

1111111100000000NOTOPRD——

逻辑非

操作数:通用寄存器、存储器执行的操作:OPRD

not

OPRD

功能:实现操作数的按位取反运算。

注:该指令不影响标志位。

例如:NOTALNOT[BX]2.移位指令

SALOPRD,CNT——

算术左移

SHLOPRD,CNT——

逻辑左移

操作数:通用寄存器、存储器

CNT:移位次数,当CNT>1时,应将其赋给CL寄存器执行的操作:

注:该指令影响标志位

C,S,Z,P视结果而定;

O只当CNT=1时有效,

移位后当最高有效位发生变化时(如1变0)O=1,否则O=0。OPRDOSZPC00100

1

00

0

COPRD0例1:某数×10

①MOVAL,XMOVBL,10MULBL

②MOVAL,XSHLAL,1;X*2MOVBL,AL;BL=X*2SHLAL,1;X*4SHLAL,1;X*8ADDAL,BL;X*8+X*2=X*10

时钟数

447078时钟数

42222315移位前00000100=4H

移位后

00001000=8HSHROPRD,CNT——逻辑右移

操作数:通用寄存器、存储器

CNT:移位次数,当CNT>1时,应将其赋给CL寄存器执行的操作:

注:该指令影响标志位

C,S,Z,P视结果而定;

O只当CNT=1时有效,

移位后当最高有效位发生变化时(如1变0)O=1,否则O=0。OPRDOSZPC00100

1

00

0

COPRD0SAROPRD,CNT——

算术右移

操作数:通用寄存器、存储器

CNT:移位次数,当CNT>1时,应将其赋给CL寄存器执行的操作:

注:该指令影响标志位

C,S,Z,P视结果而定;

O只当CNT=1时有效,

移位后当最高有效位发生变化时(如1变0)O=1,否则O=0。OPRDOSZPC00100

1

00

0

COPRD例2:将F0H除以2。

MOVAL,F0H1111,0000F0H=(-10H)=-16D

SARAL,11111,1000F8H=(-8H)=-8D

MOVAL,F0H1111,0000F0H=240DSHRAL,10111,100078H=120D无符号带符号移位指令的作用:移位指令通常用来做乘2或除2的操作:左移一位

温馨提示

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

评论

0/150

提交评论