微原-第3章4.ppt
- 文档编号:2646142
- 上传时间:2022-11-05
- 格式:PPT
- 页数:67
- 大小:335KB
微原-第3章4.ppt
《微原-第3章4.ppt》由会员分享,可在线阅读,更多相关《微原-第3章4.ppt(67页珍藏版)》请在冰豆网上搜索。
本教案内容本教案内容第第3章章8086CPU指令系统指令系统1.汇编语言指令汇编语言指令2.8086指令分类指令分类3.数据与转移地址的数据与转移地址的寻址方式寻址方式4.数据传送类指令数据传送类指令5.算术运算类指令算术运算类指令6.逻辑运算类指令逻辑运算类指令7.移位类指令移位类指令8.标志位操作指令标志位操作指令9.转移指令转移指令10.循环控制指令循环控制指令11.子程序调用返回子程序调用返回指令指令12.中断调用返回指中断调用返回指令令13.字符串操作指令字符串操作指令14.I/O输入输出指令输入输出指令15.其它指令其它指令16.宏指令宏指令3.53.5算术运算类指令算术运算类指令算术运算指令可以完成两个操作数的各种算算术运算指令可以完成两个操作数的各种算术运算:
加、减、乘、除及其术运算:
加、减、乘、除及其BCDBCD数运算的数运算的调整运算。
属于这一类的指令有:
调整运算。
属于这一类的指令有:
ADDADD、ADCADC、SUBSUB、SBBSBB、NEGNEG、CMPCMP、INCINC、DECDEC、MULMUL、IMULIMUL、DIVDIV、IDIVIDIV、CBWCBW、CWDCWD、AAAAAA、DAADAA、AASAAS、DASDAS、AAMAAM、AADAAD。
它们又可以分成。
它们又可以分成66个个子类:
子类:
3.53.5算术运算类指令算术运算类指令只要只要ALUALU涉及到运算,就涉及到运算,就不能使用段不能使用段REGREG;只要只要ALUALU涉及到运算,其涉及到运算,其运算结果会影响运算结果会影响66个状态标志位个状态标志位。
3.53.5算术运算类指令算术运算类指令一、加减法指令一、加减法指令
(一)加法指令
(一)加法指令(ADDADD、ADCADC)(Addbyteorword/withcarryAddbyteorword/withcarry)格式:
格式:
ADDDST,SRCADDDST,SRC;(DST)(SRC)+(DST)(DST)(SRC)+(DST)ADCDST,SRCADCDST,SRC;(DST)(SRC)+(DST)(DST)(SRC)+(DST)(CFCF)SRCSRC可以取立即数、通用寄存器和存储单元,可以取立即数、通用寄存器和存储单元,DSTDST可可以取通用寄存器和存储单元,但以取通用寄存器和存储单元,但SRCSRC和和DSTDST不能同时不能同时取存储单元。
取存储单元。
3.53.5算术运算类指令算术运算类指令例如,设变量例如,设变量VAR1VAR1为字型变量,为字型变量,VAR2VAR2为字节变量,则有为字节变量,则有ADDAX,56A0HADDAX,56A0H;(AX)(AX)+56A0H(AX)(AX)+56A0HADCVAR1,127FHADCVAR1,127FH;(;(VAR1VAR1)(VAR1VAR1)127FH127FH(CFCF)ADCAX,BXADCAX,BX;(AX)(AX)+(BX)(AX)(AX)+(BX)(CFCF)ADDAX,VAR1ADDAX,VAR1;(AX)(AX)+(AX)(AX)+(VAR1VAR1)ADDBX,VAR1DIADDBX,VAR1DI;(BX)(BX)(BX)+(BX)+(VAR1VAR1)+(DI)+(DI))ADDBL,VAR2ADDBL,VAR2;(BL)(BL)+(VAR2)(BL)(BL)+(VAR2)ADDBYTEPTRVAR1,ALADDBYTEPTRVAR1,AL;(;(VAR1VAR1的低位字节)的低位字节)(VAR1VAR1的低位)的低位)(AL)(AL)3.53.5算术运算类指令算术运算类指令ADDADD和和ADCADC指令会正常影响指令会正常影响PSWPSW中的中的66个状个状态标志位:
态标志位:
CFCF、AFAF、OFOF、SFSF、ZFZF和和PFPF。
例如,设(例如,设(AXAX)125AH125AH,则执行,则执行ADDAXADDAX,78C6H78C6H后,后,(AXAX)8B00H8B00H,CF=0CF=0,AF=1AF=1,OF=1OF=1,SF=1SF=1,ZF=0ZF=0,PF=1PF=1。
3.53.5算术运算类指令算术运算类指令例例3.23.2设在设在DVARDVAR开始的连续开始的连续88字节中分别字节中分别存放着两个数存放着两个数AA和和BB(每个数为(每个数为3232位),求位),求C=A+BC=A+B,并将结果,并将结果CC放到放到DVARCDVARC开始的内存开始的内存中。
中。
解:
设这两个数分别为解:
设这两个数分别为A=00127654HA=00127654H、B=00049821HB=00049821H,则在数据段中有变量定义,则在数据段中有变量定义语句:
语句:
DVARDVARDDDD00127654H00127654HDDDD00049821H00049821HDVARCDDDVARCDD?
3.53.5算术运算类指令算术运算类指令为完成双字相加运算,应该先利用为完成双字相加运算,应该先利用ADDADD指令完成低指令完成低位字的加法运算,再利用位字的加法运算,再利用ADCADC指令完成高位字的带指令完成高位字的带进位加法运算。
这样在代码段中可以编写下列程进位加法运算。
这样在代码段中可以编写下列程序,完成题目指定的说明:
序,完成题目指定的说明:
LEADI,DVARLEADI,DVARMOVAX,4DI;MOVAX,4DI;取低位字到(取低位字到(AXAX)ADDAX,DI;ADDAX,DI;低位字相加低位字相加MOVDVARC,AXMOVDVARC,AX;保存结果的低位字;保存结果的低位字MOVAX,6DI;MOVAX,6DI;取高位字到(取高位字到(AXAX)ADCAX,2DI;ADCAX,2DI;高位字相加(带进位)高位字相加(带进位)MOVDVARC+2,AX;MOVDVARC+2,AX;保存结果的高位字保存结果的高位字3.53.5算术运算类指令算术运算类指令
(二)减法指令
(二)减法指令(SUBSUB、SBBSBB)Subtractbyteorword/withborrowSubtractbyteorword/withborrow格式:
格式:
SUBDST,SRCSUBDST,SRC;(DST)(DST)(DST)(DST)(SRC)(SRC)SBBDST,SRCSBBDST,SRC;(DST)(DST)(DST)(DST)(SRC)(SRC)(CFCF)指令中指令中DSTDST、SRCSRC的说明与的说明与ADDADD指令相同。
指令相同。
3.53.5算术运算类指令算术运算类指令例如,设例如,设VAR1VAR1为字型变量,为字型变量,VAR2VAR2为字节变量,则为字节变量,则有有SUBAL,2CHSUBAL,2CH;(;(ALAL)(ALAL)2CH2CHSBBAX,BXSBBAX,BX;(;(AXAX)(AXAX)()(BXBX)()(CFCF)SUBAX,VAR1SUBAX,VAR1;(;(AXAX)(AXAX)()(VAR1VAR1)SUBVAR1,2184HSUBVAR1,2184H;(;(VAR1VAR1)(VAR1VAR1)2184H2184HSBBDL,VAR2SISBBDL,VAR2SI;(;(DLDL)(DL)-(VAR2)(DL)-(VAR2)(SI)-(CF)(SI)-(CF)3.53.5算术运算类指令算术运算类指令减法指令减法指令SUBSUB和和SBBSBB指令会正常影响指令会正常影响PSWPSW中中的的66个状态标志位:
个状态标志位:
CFCF、AFAF、OFOF、SFSF、ZFZF和和PFPF。
例如:
例如:
MOVAX,1734HMOVAX,1734HSUBAX,5566HSUBAX,5566H执行后有(执行后有(AXAX)=0C1CEH=0C1CEHCF=1CF=1,AF=1AF=1,OF=0OF=0,SF=1SF=1,ZF=0ZF=0,PF=0PF=03.53.5算术运算类指令算术运算类指令例例3.33.3设设DVAR1DVAR1和和DVAR2DVAR2保存有双字数,保存有双字数,求求DVAR1DVAR1DVAR2DVAR2,并将结果保存在双字变,并将结果保存在双字变量量DVARRDVARR中。
中。
解:
设在数据段中有变量定义语句:
解:
设在数据段中有变量定义语句:
DVAR1DVAR1DDDD78127654H78127654HDVAR2DVAR2DDDD12349821H12349821HDVARRDVARRDDDD?
3.53.5算术运算类指令算术运算类指令为完成双字相减运算,应该先利用为完成双字相减运算,应该先利用SUBSUB指令完成低位字的减法指令完成低位字的减法运算,再利用运算,再利用SBBSBB指令完成高位字的带进位减法运算。
这样在指令完成高位字的带进位减法运算。
这样在代码段中可以编写下列程序,完成题目指定的说明:
代码段中可以编写下列程序,完成题目指定的说明:
MOVAX,DVAR1MOVAX,DVAR1;取被减数的低位字到(;取被减数的低位字到(AXAX)SUBAX,DVAR2SUBAX,DVAR2;低位字相减;低位字相减MOVDVARR,AXMOVDVARR,AX;保存结果的低位字;保存结果的低位字MOVAX,DVAR1MOVAX,DVAR122;取被减数的高位字到(;取被减数的高位字到(AXAX)SBBAX,DVAR2SBBAX,DVAR222;高位字相减(带借位相减);高位字相减(带借位相减)MOVDVARR+2,AXMOVDVARR+2,AX;保存结果的高位字;保存结果的高位字3.53.5算术运算类指令算术运算类指令(三)取负指令(三)取负指令(NEGNEG)NegatebyteorwordNegatebyteorword格式:
格式:
NEGDSTNEGDST;(DST)0(DST)0(DST)(DST)说明:
说明:
取负指令取负指令NEGNEG为一类特殊的减法运算,其被减数为一类特殊的减法运算,其被减数为为00,相减结果存放在,相减结果存放在DSTDST中。
中。
DSTDST可以取通用寄可以取通用寄存器和存储单元。
存器和存储单元。
求负数的补码表示可以直接求负数的补码表示可以直接利用利用NEGNEG指令完成。
指令完成。
NEGNEG指令将正常影响指令将正常影响PSWPSW中的中的66个状态标志位个状态标志位.3.53.5算术运算类指令算术运算类指令例如,设例如,设VAR1VAR1为字型变量,则有下列指令:
为字型变量,则有下列指令:
NEGBXNEGBX;(;(BXBX)00(BXBX)NEGVAR1NEGVAR1;(;(VAR1VAR1)00(VAR1VAR1)NEGBYTEPTR2BXNEGBYTEPTR2BX;(;(BXBX)22)00(BXBX)22)3.53.5算术运算类指令算术运算类指令二、比较指令二、比较指令CMPComparebyteorwordCMPComparebyteorword格式:
格式:
CMPDST,SRCCMPDST,SRC;(DST)(DST)(SRC)(SRC),并,并设置设置PSWPSW中的状态标志位中的状态标志位说明:
说明:
CMPCMP指令与减法指令类似,完成指令与减法指令类似,完成DSTDST的内容的内容减去减去SRCSRC的内容,设置的内容,设置PSWPSW中的状态标志位中的状态标志位(简称(简称FLAGFLAG),但其结果不保存到),但其结果不保存到DSTDST。
指。
指令中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微原-第3章4.ppt