《算术逻辑运算类精品文稿.ppt》由会员分享,可在线阅读,更多相关《算术逻辑运算类精品文稿.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算术逻辑运算类算术逻辑运算类第1页,本讲稿共49页算算术术运运算算类类指指令令用用来来执执行行二二进进制制的的算算术术运运算:算:加减乘除加减乘除。这这类类指指令令会会根根据据运运算算结结果果影影响响状状态态标标志志,有有时时要要利利用用某某些些标标志志才才能能得得到到正正确确的的结结果果;使用他们时请留心有关状态标志使用他们时请留心有关状态标志重点掌握重点掌握加法指令:加法指令:ADDADD、ADCADC、INC INC 减法指令:减法指令:SUB SUB、SBBSBB、DECDEC、CMPCMP、NEGNEG4.3.2 4.3.2 算术运算类指令算术运算类指令第2页,本讲稿共49页算术运算
2、类指令算术运算类指令 可处理:不带符号可处理:不带符号可处理:不带符号可处理:不带符号/带符号的带符号的带符号的带符号的8/168/168/168/16位二进制数位二进制数位二进制数位二进制数 不带符号的压缩型(不带符号的压缩型(不带符号的压缩型(不带符号的压缩型(2 2 2 2位位位位BCDBCDBCDBCD码)码)码)码)/非压缩型非压缩型非压缩型非压缩型(一位(一位(一位(一位BCDBCDBCDBCD码,高码,高码,高码,高4 4 4 4位补位补位补位补0 0 0 0)十进制数)十进制数)十进制数)十进制数 对于加法和减法指令,带符号和不带符号的加减运算对于加法和减法指令,带符号和不带符
3、号的加减运算对于加法和减法指令,带符号和不带符号的加减运算对于加法和减法指令,带符号和不带符号的加减运算的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法的操作过程无区别,可用同一条加法/减法指令完成减法指令完成减法指令完成减法指令完成 对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设对于乘法除法运算,运算过程完全不同,分别设有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令有不带符号和带符号的乘法除法的指令 对于十进制
4、运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进对于十进制运算,先采用二进制运算指令,后进行十进制调整的方式来实现行十进制调整的方式来实现行十进制调整的方式来实现行十进制调整的方式来实现第3页,本讲稿共49页加法指令加法指令:ADD,ADCADD,ADC和和INCINC减法指令减法指令:SUB,SBB,DEC,NEGSUB,SBB,DEC,NEG和和CMPCMP他他们们分分别别执执行行字字或或字字节节的的加加法法和和减减法法运运算算,除除INCINC和和DECDEC不不影影响响CFCF标标志志外外,其其他他按按定定义义影响全部
5、状态标志位影响全部状态标志位操作数组合:操作数组合:运算指令助记符运算指令助记符 reg,imm/reg/memreg,imm/reg/mem运算指令助记符运算指令助记符 mem,imm/regmem,imm/reg4.3.2.1 4.3.2.1 加法和减法指令加法和减法指令第4页,本讲稿共49页ADD dest,src;加法:加法:destdestsrc;ADD指指令令使使目目的的操操作作数数加加上上源源操操作作数数,和和的的结果送到目的操作数结果送到目的操作数SUB dest,src;减法:减法:destdestsrc;SUB指指令令使使目目的的操操作作数数减减去去源源操操作作数数,差差的
6、的结结果送到目的操作数果送到目的操作数1.1.加和减指令加和减指令第5页,本讲稿共49页MOV AX,7348H;AX7348HADD AL,27H;AL48H27H6FH,AX736FH;OF0,SF0,ZF0,PF1,CF0ADD AX,3fffH;AX736FH3FFFHB36EH;OF1,SF1,ZF0,PF0,CF0例例4 4 加法加法第6页,本讲稿共49页SUB AH,0F0H;AHB3HF0HC3H,AXC36EH;OF0,SF1,ZF0,PF1,CF1MOV word ptr200H,0EF00H;200HEF00H,标志不变,标志不变SUB 200H,AX;200HEF00H
7、C36EH2B92H;OF0,SF0,ZF0,PF0,CF0SUB SI,SI;SI0;OF0,SF0,ZF1,PF1,CF0例例5 5 减法减法第7页,本讲稿共49页ADC dest,src;加法:;加法:destdestsrcCF;ADC指指令令除除完完成成ADD加加法法运运算算外外,还还要要加加上上进位进位CF,结果送到目的操作数,结果送到目的操作数SBB dest,src;减法:减法:destdestsrcCF;SBB指指令令除除完完成成SUB减减法法运运算算外外,还还要要减减去去借位借位CF,结果送到目的操作数,结果送到目的操作数2.2.带进位加和减指令带进位加和减指令第8页,本讲稿
8、共49页MOV AX,7856H;AX7856HMOV DX,8234H;DX8234HADD AX,8998H;AX01EEH,CF1ADC DX,1234H;DX9469H,CF0SUB AX,4491H;AXBD5DH,CF1SBB DX,8000H;DX1468H,CF0例例6 6 无符号双字加法和减法无符号双字加法和减法第9页,本讲稿共49页CMP dest,src ;做减法运算:;做减法运算:destsrc;CMP指指令令将将目目的的操操作作数数减减去去源源操操作作数数,但但差差值值不回送不回送目的操作数目的操作数比比较较指指令令通通过过减减法法运运算算影影响响状状态态标标志志,用
9、用于于比比较较两两个个操操作作数数的的大大小小关关系系,后后面面跟跟转转移指令移指令判判 断断 两两 个个 无无 符符 号号 数数 大大 小小 用用 JC/JNC或或JA/JNBE或或JB/JNAE指令指令判判 断断 两两 个个 带带 符符 号号 数数 大大 小小 用用 JG/JNLE或或JL/JNGE3.3.比较指令比较指令CMPCMP(comparecompare)第10页,本讲稿共49页INC reg/mem;增量(加;增量(加1):):reg/memreg/mem1DEC reg/mem;减量(减;减量(减1):):reg/memreg/mem1INC指令和指令和DEC指令是单操作数指
10、令指令是单操作数指令与与加加法法和和减减法法指指令令实实现现的的加加1和和减减1不不同同的的是是:INC和和DEC不影响不影响CF标志标志INC SI;SISI1DEC byte ptr SI;SISI14.4.增量和减量指令增量和减量指令第11页,本讲稿共49页例例7 7 比较指令比较指令CMPCMP(comparecompare)若自若自若自若自BLOCKBLOCKBLOCKBLOCK开始的内存缓冲区中,有开始的内存缓冲区中,有开始的内存缓冲区中,有开始的内存缓冲区中,有100100100100个带符号字数据,个带符号字数据,个带符号字数据,个带符号字数据,要找出其中的最大数,把它存到要找
11、出其中的最大数,把它存到要找出其中的最大数,把它存到要找出其中的最大数,把它存到MAXMAXMAXMAX单元中单元中单元中单元中 MOV BXMOV BXMOV BXMOV BX,OFFSET BLOCKOFFSET BLOCKOFFSET BLOCKOFFSET BLOCKMOV AXMOV AXMOV AXMOV AX,BXBXBXBXINC BXINC BXINC BXINC BXINC BXINC BXINC BXINC BXMOV CXMOV CXMOV CXMOV CX,99999999AGAINAGAINAGAINAGAIN:CMPCMPCMPCMP AX AX AX AX,BX
12、BXBXBX JG NEXT JG NEXT JG NEXT JG NEXT MOV AX MOV AX MOV AX MOV AX,BXBXBXBXNEXTNEXTNEXTNEXT:INC BX,INC BX,INC BX,INC BX,INC BXINC BXINC BXINC BXDEC CXDEC CXDEC CXDEC CXJNZ AGAINJNZ AGAINJNZ AGAINJNZ AGAINMOV MAXMOV MAXMOV MAXMOV MAX,AXAXAXAXHLT HLT HLT HLT 第12页,本讲稿共49页NEG reg/mem ;reg/mem0reg/memNEG
13、指指令令对对操操作作数数执执行行求求补补运运算算,即即用用零零减减去操作数,然后结果返回操作数去操作数,然后结果返回操作数求补运算可表达成:求补运算可表达成:将操作数按位取反后加将操作数按位取反后加1NEG指指令令对对标标志志的的影影响响与与用用零零作作减减法法的的SUB指令一样指令一样NEG指令也是一个单操作数指令指令也是一个单操作数指令NEG指指令令执执行行的的结结果果一一般般总总是是使使CF1除除非非操作数为操作数为0时时CF05.5.求补指令求补指令NEGNEG(negtivenegtive)第13页,本讲稿共49页MOV AX,0FF64HNEG AL;AL064H9CH,AXFF9
14、CH;OF0SF1,ZF0,PF1,CF1SUB AL,9DH;ALFFH,AXFFFFH;OF0,SF1,ZF0,PF1,CF1NEG AX;AX0FFFFH0001H;OF0,SF0,ZF0,PF0,CF1DEC AL;AL01H10,AX0000H;OF0,SF0,ZF1,PF1,CF1NEG AX;AX000;OF0,SF0,ZF1,PF1,CF0例例8 8 求补运算求补运算第14页,本讲稿共49页十十进进制制数数调调整整指指令令对对二二进进制制运运算算的的结结果果进进行行十十进进制制调调整整,以以得得到到十十进进制制的的运运算算结结果果,以此实现十进制以此实现十进制BCDBCD码运算
15、码运算80868086指令系统支持两种指令系统支持两种BCDBCD码调整运算码调整运算q压缩压缩BCDBCD码码就是通常的就是通常的84218421码;它用码;它用4 4个二进制个二进制位表示一个十进制位,一个字节可以表示两个位表示一个十进制位,一个字节可以表示两个十进制位,即十进制位,即00009999q非压缩非压缩BCDBCD码码用用8 8个二进制位表示一个十进制位,个二进制位表示一个十进制位,只用低只用低4 4个二进制位表示一个十进制位个二进制位表示一个十进制位0 09 9,高,高4 4位为位为0 04.3.2.2 4.3.2.2 十进制调整指令十进制调整指令第15页,本讲稿共49页十进
16、制调整指令十进制调整指令DAA/DASDAA/DAS指令指令指令指令:十进制调整指令十进制调整指令十进制调整指令十进制调整指令它跟在它跟在它跟在它跟在ADD/ADCADD/ADCADD/ADCADD/ADC或或或或SUB/SBBSUB/SBBSUB/SBBSUB/SBB之后,功能是将之后,功能是将之后,功能是将之后,功能是将ALALALAL中十进制数中十进制数中十进制数中十进制数相加相加相加相加/减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和减后的结果进行校正,产生一个组合的十进制和/差,仍保留在差,仍保留在差,仍
17、保留在差,仍保留在ALALALAL中中中中 AAA/AASAAA/AAS指令:十进制调整指令指令:十进制调整指令指令:十进制调整指令指令:十进制调整指令它跟在它跟在它跟在它跟在ADD/ADCADD/ADCADD/ADCADD/ADC或或或或SUB/SBBSUB/SBBSUB/SBBSUB/SBB之后,对之后,对之后,对之后,对ALALALAL中两个未组合的十中两个未组合的十中两个未组合的十中两个未组合的十进制数相加进制数相加进制数相加进制数相加/减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的十减后的结果进行校正,产生一个未组合的
18、十进制和进制和进制和进制和/差差差差 ,仍保留在,仍保留在,仍保留在,仍保留在ALALALAL中中中中 第16页,本讲稿共49页乘法指令分乘法指令分无符号无符号和和有符号有符号乘法指令乘法指令 MUL reg/mem;无符号乘法无符号乘法 IMUL reg/mem;有符号乘法有符号乘法AL或或AX与另一个操作数相乘,结果送到与另一个操作数相乘,结果送到AL和和AH(两个字节(两个字节相乘),或送到相乘),或送到AX和它的扩展部分和它的扩展部分DX(两个字相乘)(两个字相乘)除法指令分除法指令分无符号无符号和和有符号有符号除法指令除法指令 DIV reg/mem;无符号除法;无符号除法 IDIV
19、 reg/mem;有符号除法;有符号除法字节除法:字节除法:AX源操作数(源操作数(8 8位),商在位),商在AL中,余数在中,余数在AH中中字除法:字除法:DX,AX 源操作数(源操作数(1616位),商在位),商在AX中,余数中,余数DX中中4.3.2.3 4.3.2.3 乘法和除法指令乘法和除法指令第17页,本讲稿共49页真值(十进制)真值(十进制)864二进制编码二进制编码08H40H压缩压缩BCD码码08H64H非压缩非压缩BCD码码08H0604HASCII码码38H3634H压缩BCD码加减法调整指令DAA DAS非压缩BCD码加减法调整指令AAA AAS AAM AAD编码的比
20、较编码的比较第18页,本讲稿共49页位操作类指令以位操作类指令以二进制位二进制位为基本单位进行数据的操作为基本单位进行数据的操作当当需需要要对对字字节节或或字字数数据据中中的的各各个个二二进进制制位位操操作作时时,可可以以考考虑采用位操作类指令虑采用位操作类指令注意这些指令对标志位的影响注意这些指令对标志位的影响1.逻辑运算指令逻辑运算指令AND OR XOR NOT TEST2.移位指令移位指令SHL SHR SAR SAL3.循环移位指令循环移位指令ROL ROR RCL RCR4.3.3 4.3.3 逻辑运算指令逻辑运算指令第19页,本讲稿共49页双双操操作作数数逻逻辑辑指指令令AND、
21、OR、XOR和和TEST,根根据据结结果果设设置置SF、ZF和和PF状状态态,而而对对AF未定义;指令的执行使未定义;指令的执行使CFOF0:运算指令助记符运算指令助记符 reg,imm/reg/mem运算指令助记符运算指令助记符 mem,imm/reg 单操作数逻辑指令单操作数逻辑指令NOT不影响标志位:不影响标志位:NOT reg/mem4.3.3.1 4.3.3.1 逻辑运算指令逻辑运算指令第20页,本讲稿共49页对两个操作数执行逻辑与运算,结果送目的操作数对两个操作数执行逻辑与运算,结果送目的操作数AND dest,srcAND dest,src;destdestdestdestsrc
22、src 只只有有相相“与与”的的两两位位都都是是1 1,结结果果才才是是1 1;否否则,则,“与与”的结果为的结果为0 01.1.逻辑与指令逻辑与指令ANDAND第21页,本讲稿共49页对两个操作数执行逻辑或运算,结果送目的操作数对两个操作数执行逻辑或运算,结果送目的操作数OR dest,srcOR dest,src;destdestdestdestsrcsrc只只要要相相“或或”的的两两位位有有一一位位是是1 1,结结果果就就是是1 1;否则,结果为;否则,结果为0 02.2.逻辑或指令逻辑或指令OROR第22页,本讲稿共49页对两个操作数执行逻辑异或运算,结果送目的操作数对两个操作数执行逻
23、辑异或运算,结果送目的操作数XOR dest,srcXOR dest,src;destdestdestdestsrcsrc只只有有相相“异异或或”的的两两位位不不相相同同,结结果果才才是是1 1;否则,结果为;否则,结果为0 03.3.逻辑异或指令逻辑异或指令XORXOR第23页,本讲稿共49页对对两两个个操操作作数数执执行行逻逻辑辑与与运运算算,结结果果并并不不送送目的操作数,仅按目的操作数,仅按ANDAND指令影响标志指令影响标志TEST dest,srcTEST dest,src;destdestsrcsrc AND与与TEST指令的关系,指令的关系,同同SUB与与CMP指令的关系一样指
24、令的关系一样4.4.测试指令测试指令TESTTEST第24页,本讲稿共49页对一个操作数执行逻辑非运算对一个操作数执行逻辑非运算NOT reg/memNOT reg/mem;reg/memreg/memreg/memreg/mem 按按位位取取反反,原原来来是是“0 0”的的 位位 变变 为为“1 1”;原原 来来 是是“1 1”的的 位位 变变 为为“0 0”5.5.逻辑非指令逻辑非指令NOTNOT第25页,本讲稿共49页MOV AL,75H;AL75HAND AL,32H;AL30H;CFOF0,SF0,ZF0,PF1OR AL,71H;AL71H;CFOF0,SF0,ZF0,PF1XOR
25、 AL,0F1H;AL80H;CFOF0,SF1,ZF0,PF0NOT AL;AL7FH,标志不变,标志不变例例9 9 逻辑运算逻辑运算第26页,本讲稿共49页AND BL,11110110B;BL中中D0和和D3清清0,其余位不变,其余位不变OR BL,00001001B;BL中中D0和和D3置置1,其余位不变,其余位不变XOR BL,00001001B;BL中中D0和和D3求反,其余位不变求反,其余位不变 AND指令可用于复位某些位(同指令可用于复位某些位(同0 0相与),不影响其他位相与),不影响其他位 OR指令可用于置位某些位(同指令可用于置位某些位(同1 1相或),不影响其他位相或)
26、,不影响其他位 XOR指令可用于求反某些位(同指令可用于求反某些位(同1 1相异或),不影响其他位相异或),不影响其他位例例10 10 逻辑运算指令的应用逻辑运算指令的应用第27页,本讲稿共49页将将操操作作数数移移动动一一位位或或多多位位,分分成成逻逻辑辑移移位位和算术移位,分别具有左移或右移操作和算术移位,分别具有左移或右移操作移移位位指指令令的的第第一一个个操操作作数数是是指指定定的的被被移移位位的的操操作作数数,可可以以是是寄寄存存器器或或存存储储单单元元;后后一个操作数一个操作数表示移位位数:表示移位位数:该操作数该操作数为为1 1,表示移动一位,表示移动一位该操作数该操作数为为CL
27、,CL寄存器值表示移位位数寄存器值表示移位位数 (移位位数(移位位数大于大于1 1只能用只能用CL表示表示)按按照照移移入入的的位位设设置置进进位位标标志志CF,根根据据移移位位后的结果影响后的结果影响SF、ZF、PF4.3.3.2 4.3.3.2 移位指令移位指令第28页,本讲稿共49页SHL reg/mem,1/CL;reg/mem左移左移1或或CL位位;最低位补;最低位补0,最高位进入,最高位进入CF演示演示1.1.逻辑左移指令逻辑左移指令SHLSHL第29页,本讲稿共49页SHR reg/mem,1/CL;reg/mem右移右移1/CL位位;最高位补;最高位补0,最低位进入,最低位进入
28、CF演示演示2.2.逻辑右移指令逻辑右移指令SHRSHR第30页,本讲稿共49页SAL reg/mem,1/CL;与;与SHL是同一条指令是同一条指令演示演示3.3.算术左移指令算术左移指令SALSAL第31页,本讲稿共49页SAR reg/mem,1/CL;reg/mem右移右移1/CL位位;最高位不变,最低位进入;最高位不变,最低位进入CF演示演示4.4.算术右移指令算术右移指令SARSAR第32页,本讲稿共49页MOV DX,6075H;DX01100000 01110101BSHL DX,1;DX11000000 11101010B;CF0,SF1、ZF0、PF0SAR DX,1;DX
29、11100000 01110101B;CF0,SF1、ZF0、PF0SHR DX,1;DX01110000 00111010B;CF1,SF0、ZF0、PF1MOV CL,4;CL4,标志不变标志不变SAR DX,CL;DX00000111 00000011B;CF1,SF0、ZF0、PF1例例11 11 数据移位数据移位第33页,本讲稿共49页XOR AH,AH;实现实现AH0,同时使同时使CF0SHL AX,1;AX2ALMOV BX,AX;BXAX2ALSHL AX,1;AX4ALSHL AX,1;AX8ALADD AX,BX;AX8AL2AL10ALSUB AH,AHAND AH,0
30、逻辑左移一位相当于无符号数乘以逻辑左移一位相当于无符号数乘以2 2 逻辑右移一位相当于无符号数除以逻辑右移一位相当于无符号数除以2 2例例13 13 将将ALAL寄存器中的无符号数乘以寄存器中的无符号数乘以1010第34页,本讲稿共49页循循环环移移位位指指令令类类似似移移位位指指令令,但但要要将将从从一一端移出的位返回到另一端形成循环。分为端移出的位返回到另一端形成循环。分为:ROL reg/mem,1/CL ;不带进位循环左移不带进位循环左移ROR reg/mem,1/CL ;不带进位循环右移不带进位循环右移RCL reg/mem,1/CL ;带进位循环左移带进位循环左移RCR reg/m
31、em,1/CL ;带进位循环右移带进位循环右移循循环环移移位位指指令令的的操操作作数数形形式式与与移移位位指指令令相相同同,按按指指令令功功能能设设置置进进位位标标志志CF,但但不不影影响响SF、ZF、PF、AF标志标志演示演示演示演示演示演示演示演示4.3.3.3 4.3.3.3 循环移位指令循环移位指令第35页,本讲稿共49页;将将DX.AXDX.AX中中3232位数值左移一位位数值左移一位SHL AX,1SHL AX,1RCL DX,1RCL DX,1DXAXCF03232位数据移位位数据移位32323232位无符号数(位无符号数(位无符号数(位无符号数(DX.AXDX.AXDX.AXD
32、X.AX)右移一位)右移一位)右移一位)右移一位32323232位无符号数(位无符号数(位无符号数(位无符号数(DX.AXDX.AXDX.AXDX.AX)循环右移一位)循环右移一位)循环右移一位)循环右移一位32323232位无符号数(位无符号数(位无符号数(位无符号数(DX.AXDX.AXDX.AXDX.AX)左移一位)左移一位)左移一位)左移一位第36页,本讲稿共49页例例12 12 把数字把数字ASCIIASCII码转换为码转换为BCDBCD码码 若是奇数个若是奇数个若是奇数个若是奇数个ASCIIASCIIASCIIASCII码,则把地址最低位的一个转换为码,则把地址最低位的一个转换为码
33、,则把地址最低位的一个转换为码,则把地址最低位的一个转换为BCDBCDBCDBCD码(高码(高码(高码(高4 4 4 4位为位为位为位为0 0 0 0),然后把剩下的偶数个数按统一的方法),然后把剩下的偶数个数按统一的方法),然后把剩下的偶数个数按统一的方法),然后把剩下的偶数个数按统一的方法处理(每两个处理(每两个处理(每两个处理(每两个ASCIIASCIIASCIIASCII码转换成一个压缩的码转换成一个压缩的码转换成一个压缩的码转换成一个压缩的BCDBCDBCDBCD码,且地址码,且地址码,且地址码,且地址高的放在高四位)高的放在高四位)高的放在高四位)高的放在高四位)流程图流程图第37
34、页,本讲稿共49页MOV SIMOV SIMOV SIMOV SI,OFFSET ASCBUFOFFSET ASCBUFOFFSET ASCBUFOFFSET ASCBUFMOV DIMOV DIMOV DIMOV DI,OFFSET BCDBUFOFFSET BCDBUFOFFSET BCDBUFOFFSET BCDBUFMOV CXMOV CXMOV CXMOV CX,COUNT COUNT COUNT COUNT ;个数;个数;个数;个数CXCXCXCXROR CXROR CXROR CXROR CX,1 1 1 1 JNC NEXT JNC NEXT JNC NEXT JNC NEXT
35、 ;为偶数(;为偶数(;为偶数(;为偶数(C=0C=0C=0C=0即最低位为即最低位为即最低位为即最低位为0 0 0 0),转),转),转),转NEXTNEXTNEXTNEXTROL CXROL CXROL CXROL CX,1 1 1 1 ;为奇数,则恢复原值;为奇数,则恢复原值;为奇数,则恢复原值;为奇数,则恢复原值MOV ALMOV ALMOV ALMOV AL,SI SI SI SI ;取第一个数;取第一个数;取第一个数;取第一个数ALALALALINC SIINC SIINC SIINC SIAND ALAND ALAND ALAND AL,0FH 0FH 0FH 0FH ;屏蔽高;
36、屏蔽高;屏蔽高;屏蔽高4 4 4 4位位位位MOV DIMOV DIMOV DIMOV DI,AL AL AL AL;送存储器;送存储器;送存储器;送存储器由由ASCIIASCII码转换为码转换为BCDBCD码码第38页,本讲稿共49页 INC DI INC DI INC DI INC DI DEC CX DEC CX DEC CX DEC CX ROR CX ROR CX ROR CX ROR CX,1 1 1 1 ;CX/2CX/2CX/2CX/2NEXTNEXTNEXTNEXT:MOV AL MOV AL MOV AL MOV AL,SI SI SI SI ;取数;取数;取数;取数ALA
37、LALAL INC SI INC SI INC SI INC SI AND AL AND AL AND AL AND AL,0FH0FH0FH0FH MOV BL MOV BL MOV BL MOV BL,ALALALAL MOV AL MOV AL MOV AL MOV AL,SISISISI INC SI INC SI INC SI INC SI PUSH CX PUSH CX PUSH CX PUSH CX MOV CL MOV CL MOV CL MOV CL,4 4 4 4 由由ASCIIASCII码转换为码转换为BCDBCD码码第39页,本讲稿共49页SAL AL,CLSAL AL
38、,CLSAL AL,CLSAL AL,CLPOP CXPOP CXPOP CXPOP CXADD ALADD ALADD ALADD AL,BLBLBLBLMOV DIMOV DIMOV DIMOV DI,ALALALALINC DIINC DIINC DIINC DILOOP NEXT LOOP NEXT LOOP NEXT LOOP NEXT ;(;(;(;(DEC CX JNZ NEXTDEC CX JNZ NEXTDEC CX JNZ NEXTDEC CX JNZ NEXT)HLT HLT HLT HLT 由由ASCIIASCII码转换为码转换为BCDBCD码码第40页,本讲稿共49页
39、练习练习1.1.1.1.将将将将ALALALAL的的的的D3D3D3D3和和和和D4D4D4D4位清零,其余位不变位清零,其余位不变位清零,其余位不变位清零,其余位不变2.2.2.2.将将将将ALALALAL的的的的D3D3D3D3和和和和D4D4D4D4位置位置位置位置1 1 1 1,其余位不变,其余位不变,其余位不变,其余位不变3.3.3.3.内存单元内存单元内存单元内存单元MENMENMENMEN存放着一个存放着一个存放着一个存放着一个8 8 8 8位的数据,将它的高位的数据,将它的高位的数据,将它的高位的数据,将它的高4 4 4 4位位位位与低与低与低与低4 4 4 4位互换位互换位互换位互换4.4.4.4.将将将将BCDBCDBCDBCD码转换成码转换成码转换成码转换成ASCIIASCIIASCIIASCII码码码码第41页,本讲稿共49页第49页,本讲稿共49页