微机原理汇编接口技术朱定华_第1页
微机原理汇编接口技术朱定华_第2页
微机原理汇编接口技术朱定华_第3页
微机原理汇编接口技术朱定华_第4页
微机原理汇编接口技术朱定华_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

1、1-10AH,40H,4EH,50H,5DH,64H,7DH,FFH1-2 44,100,213,256,888,1278,32451-3 十进制数原码补码十进制数原码补003A0-1892EE-92883A0FC60301E1E8796225C225C-309EE2-8796A25CDDA4347015B015B655300000FFFA0000FFFA-347815BFEA5-655308000FFFAFFFF00061-4 用十进制数写出下列补码表示的机器数的真值:27,113,-128,-8,14717,31467,-27824,-124781-5溢出; 溢出

2、 无溢出 无溢出1-6 00AAH, 803BH, FF88H。1-7 将下列各组二进制数进行“与”运算。(1)DAH99H (2)BAH56H (3)95HFFH (1)1101101010011001解:1101101010011001=10011000(2)1011110001010110解:1011110001010110=00010100(3)100101011111111解:1001010111111111=100101011-8 将下列各组二进制数进行“或”运算。(1)DAH99H (2)F0H5AH (3)C6H45H(1)1101101010011001解:110110101

3、0011001=11011011(2)1111000001011010解:1111000001011010=11111010(3)1100011000000000解:1100011000000000=110001101-9 10000110Å01011010=1101110010111100Å10101010=0001011011011010Å10011001=010000111-10 十进制数压缩BCD数非压缩BCD数ASCII码3838H0308H3338H9797H0907H3937H105105H010005H313035H255255H020505H32

4、3535H483483H040803H343833H764764H070604H373634H10001000H01000000H31303030H10251025H01000205H31303235H1-11 -43,126,8192,-301161-12 A8H1-170914H:00F2H, 09232H1-18 DS=2F5FH时,物理地址变为37820H。不同段地址的数据段示意图如下图2所示。2.3BX=5566HAX=3344HCX=5566HDX=1122H堆栈存储器的逻辑地址、堆栈指示器的指向及栈区的内容如下图所示。2.40036H, 003AH 2.5程 序 段AXMOV A

5、X,00000DEC AXFFFFADD AX,7FFFH7FFEADC AX,18000NEG AX8000OR AX,3FDFHBFDFAND AX,0EBEDHABCDXCHG AH,ALCDABSAL AX,19B56RCL AX,136AD 2.6。指 令存储器操作数的逻辑地址注 释SUB BP,AL0FC0H:0000H段地址在SSMOV BX,BH1000H:0000HMOV DI,DL1000H:0000HMOV ES:SI,BL2000H:0000HADD BP+500H,AH0FC0H:0500H段地址在SSSUB SI-300H,AL1000H:FD00H-300H=FD

6、00HMOV DI+1000H,DL1000H:1000HMOV BX-8,CL1000H:FFF8H-8=FFF8HMOV ES:DI+1000H,CH2000H:1000HMOV BP+SI,DH0FC0H:0000H段地址在SSMOV BX+DI,DL1000H:0000H 2.7 0000H, 0880H, 0081H, 0800H2.8 NEG AX, AND AX,7FFFH2.9 (1)MOV CL,4SHL AX,CLSHL BL,CLMOV AL,BLSHR DH,CLOR AL,DH(2)XOR CX,0FF0H(3)MOV AL,BXMOV AH,0ADD AL,BX+1

7、ADC AH,0ADD AL,2 BXADC AH,0(4)方法1:MOV AL,BXXCHG AL,BX+3MOV BX,ALMOV AL,1BXXCHG AL,2BXMOV 1BX,AL方法2:MOV AX,BXXCHG AH,2BXXCHG AL,3BXMOV BX,AX(5)XCHG BH,BLMOV AL,BLAND BL,0FHMOV CL,4SHR AL,CLMOV DL,BHAND DL,0FHSHR BH,CLMOV CL,BH(6) MOV AH,0 ;将AL中的无符号数扩展成16位MOV CL,2SHL AX,CL ;将AX乘以4MOV DX,AXSHL AX,CL ;将

8、AX再乘以4ADD AX,DX2.10数据的存储形式:(2)变量名偏移地址(H)变量的值(H)S1000000S2000631NB000B02NW000E0078P0012FFFF(3)程 序 段目的寄存器的值源操作数的寻址方式MOV BX, OFFSET S1+30003立即寻址MOV SI, OFFSET S20006立即寻址MOV CL, COUNT0B立即寻址MOV BP, NW+2FF00直接寻址MOV DX, WORD PTR NB0202直接寻址MOV AL, SI+334变址寻址MOV AH, SI+BX+135基址变址寻址MOV CH, BYTE PTR NW+3FF直接寻址

9、 (4)改正下列程序段中不正确指令的错误: a.MOV AX,S1 b.MOV BP,OFFSET S2MOV CL,BP c. MOV SI,OFFSET NBMOV SI, ¢+¢ d.MOV DL,NW+2 e.MOV DI,CH f.MOV BX,OFFSET S1MOV DH,BX+3 g.INC COUNT h.MOV NB,S2 i.MOV AX,BX+S1j.ADD AX, DX+NW解:a.MOV AX, WORD PTR S1 b.MOV BP, OFFSET S2MOV CL, DS: BP c.MOV SI, OFFSET NBMOV BYTE PT

10、R SI, ¢+¢ d.MOV DL, BYTE PTR NW+2 e.XCHG CH, CLMOV CH, 0MOV DI, CX f.MOV BX, OFFSET S1MOV DH, BX+3 g.错误指令。在操作数中直接书写数值表达式 COUNT+1 h.MOV AL, S2MOV NB, AL i.MOV AX, WORD PTR S1BXjADD AX, DI+NW2.11stacksegment stack ¢stack¢dw 32 dup(0)stackendsdatasegmentFIRST DD 0A46E5F90HSECONDDB5

11、DUP(0)dataendscodesegmentstartproc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV AX, WORD PTR FIRSTMOV DX, WORD PTR FIRST+2MOV SECOND+4, 0SHL AX, 1RCL DX, 1RCL SECOND+4, 1SHL AX, 1RCL DX, 1RCL SECOND +4, 1MOV WRORD PTR SECOND, AXMOV WORD PTR SECOND +2, DXre

12、tstartendpcode endsend start2.12stacksegment stack ¢stack¢dw 32 dup(0)stackendsdatasegmentFIRST DD 0A46E5F90HTHIRDDB 4 DUP(0)dataendscodesegmentstartproc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV AX, WORD PTR FIRSTMOV DX, WORD PTR FIRST+2SAR D

13、X, 1RCR AX, 1SAR DX, 1RCR AX, 1MOV WORD PTR THIRD, AXMOV WORD PTR THIRD+2, DXretstartendpcode endsend start2.13stacksegment stack ¢stack¢dw 32 dup(0)stackendsdatasegmentFIRST DD 0A46E5F90HFORTHDB 4 DUP(0)dataendscodesegmentstartproc farassume ss: stack, cs: code, ds: datapush dssub ax, axp

14、ush axmov ax, datamov ds, axMOV AX, WORD PTR FIRST NOT AXMOV WORD PTR FORTH, AXMOV AX, WORD PTR FIRST+2NOT AXMOV WORD PTR FIRST+2, AXADD WORD PTR FORTH, 1ADC WORD PTR FORTH+2, 0retstartendpcode endsend start2.14 数据段的内存映象图:该程序的功能是将字节变量BUF中的两位BCD数以十六进制数形式显示出来。具体显示是在下一行的行首显示(BUF)=78H。3-1 1. AX=0048H,AX

15、=0702H2. AX=0059H, AX=0411H, AX=0107H,DL=04H3. AX=0011H, AX=0107H4AX=005AH, AX=0900H, AX=0908H5. AL=62H6. AX=0248H3-2stacksegment stack ¢stack¢dw 32 dup(0)stack endsdatasegmentBVARDB 99Hdataendscodesegmentbeginproc farassume ss: stack , cs: code, ds: datapush dssub ax, axpush axmov ax, dat

16、amov ds, axMOV AL, BVARMOV CL, 4SHR AL, CLMOV AH, 10MUL AHAND BVAR, 0FHADD BVAR, ALretbeginendpcodeendsend begin先将2位压缩BCD数转换为非压缩BCD数,再用AAD指令将非压缩BCD数转换为二进制数:MOV AL, BVARMOV AH, ALMOV CL, 4SHR AH, CLAND AL, 0FHAADMOV BVAR, AL3-3stack segment stack ¢stack¢ dw 32 dup(0) stack ends data segment

17、 W1 DW 0807H W2 DW 0609H B3 DB 2 DUP(0) data ends code segment begin proc far assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,axMOV AX, W1 ;AX=0807H SUB AL,BYTE PTR W2 ;AL=FEH, CF=1 AAS ;AL=08H, AH=07HMOV B3, ALMOV AL,AHSUB AL,W2+1MOV B3+1,AL ret begin endp code ends end

18、 begin还可以用AAD指令将两个非压缩BCD数转换为二进制数,相减后再用AAM将差转换为非压缩BCD数:MOV AX, W2AADMOV DX,AXMOV AX,W1AADSUB AX,DXAAMMOV BYTE PTR B3,AX3-4stack segment stack ¢stack¢ dw 32 dup(0) stack ends data segment D1 DD 06070809H D2 DD 04050607H OBF DB 6 DUP(0) data ends code segment begin proc far assume ss:stack,cs

19、:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axMOV SI,0MOV DI,OFFSET OBF+5MOV BYTE PTRDI,¢$¢MOV CX,4XOR AH,AHAGAIN: MOV AL, BYTE PTR D1SIADD AL, BYTE PTR D2SIADD AL,AHMOV AH,0AAAADD AL,30HDEC DIMOV DI,ALINC SILOOP AGAINAND AH,AHJZ N5DEC DIMOV BYTE PTRDI,¢1¢N5: MOV DX,DIM

20、OV AH,9INT 21H ret begin endp code ends end begin3-5stack segment stack ¢stack¢ dw 32 dup(0) stack ends data segment W1 DW 8931H W2 DW 5678H OBF DB 6 DUP(0) data ends code segment begin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axMOV DI,0MOV AL, BYTE P

21、TR W1 ;AL=31HADD AL, BYTE PTR W2 ;AL=A9H, CF=0, AF=0DAA ;AL=09H, CF=1MOV AH, ALMOV AL, BYTE PTR W1+1 ;AL=89HADC AL, BYTE PTR W2+1 ;AL=E0H, CF=0, AF=1DAA ;AL=46H, CF=1PUSHFMOV DI OFFSET OBF+5MOV BYTE PTRDI, ¢$¢MOV CL,4 XCHG AH,ALAGAIN: MOV DL,0FHAND DL,ALADD DL,30HDEC DIMOV DI,DLSHR AX,CLAN

22、D AX,AXJNZ AGAINPOPFJNC OUTPUTDEC DIMOV BYTE PTRDI, ¢1¢OUTPUT: MOV DX,DIMOV AH,9INT 21H begin endp code endsend begin 3-6stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentBVAR DB 99HOBUF DB 4 DUP(0)data endscode segmentbegin proc farassume ss: stack, cs: code, ds: data

23、push dssub ax, axpush axmov ax, datamov ds, axMOV AL ,BVAR ;二进制数送ALMOV AH, 0 ;二进制数扩展为16位(无符号数扩展)MOV DL, 100DIV DLADD AL, 30H ;将百位变为ASCII码MOV OBUF, AL ;存百位MOV AL,AH ;将十位和个位的二进制数即余数送ALAAM ;将AL中的二进制数转换为ASCII BCD数ADD AX,3030H ;将AX中的ASCII BCD数变为ASCII码MOV OBUF+1,AHMOV OBUF+2,ALMOV OBUF+3,¢$¢MOV

24、DX,OFFSET OBUFMOV AH,9INT 21Hretbegin endpcode endsend begin将8位二进制数转换为十进制数也可以用除10取余法实现。转换程序段如下:MOV AL,BVARXOR AH,AH ;将8位二进制数扩展为16位(无符号数扩展)MOV DL,10DIV DLADD AH,30H ;将第一个余数即个位变为ASCII码MOV OBUF+2,AHXOR AH,AH ;将AL中的二进制数扩展为16位DIV DLADD AX,3030H ;AH为十位,AL为百位MOV WORD PTR OBUF,AXMOV OBUF+3,¢$¢还可以用

25、左移二进制数的方法将二进制数转换为十进制数:XOR AX,AX;清0AXMOV CX,8;左移二进制数8次AGAIN: SHL BVAR, 1ADC AL, ALDAAADC AH, 0; AH的值小于等于2不需校正LOOP AGAINADD AH, 30H;百位转换为ASCII码MOV OBUF, AHMOV AH, AL;保存十位和个位MOV CL, 4SHR AL, CL;BCD数十位移至AL低4位AND AH, OFH;BCD数个位在AH低4位ADD AX, 3030H ;个位和十位转换为ASCII码MOV WORD PTR OBUF+1, AXMOV OBUF+3, ¢$&

26、#162;以二进制数11111101B转换为BCD数0253H为例,说明转换的过程,全过程如下图所示。3-7stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentTAB DW 0DB ¢0 $¢DW 1DB ¢1 $¢DW 8DB ¢8 $¢ DW 64000DB ¢64000$¢LFZ DW 0IBUF DB 3,0,3 DUBP(0)data endscode segmentbegin proc farassume ss:

27、stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV DX, OFFSET IBUFMOV AH, 10INT 21HMOV AH, 2MOV DL, 0AHINT 21HMOV AX, WORD PTR IBUF+2 ;个位送AH,十位送ALXCHG AH,AL ;个位与十位交换CMP IBUF+1,2 ;判别N是一位数还是二位数JE COMMOV AL,AHXOR AH,AH; ;若N为一位数,则要清AHCOM: AND AX, 0F0FH ;将AX中的ASCII码变为ASCII BCD数AAD

28、 ;将AX中的ASCII BCD数变为二进制数MOV CL,3SHL AX,CL ;将AX中的二进制数乘以8MOV BX,AXMOV AX,TAB BXMOV LFZ,AXMOV DX,OFFSET TAB+2 ;DX指向立方值的ASCII码ADD DX,BX ;将DX下移8N,指向N的ASCII码MOV AH,9INT 21Hretbegin endpcode endsend begin3-8stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentWA DW 0ABCDHBA DB 0data endsco

29、de segmentbegin proc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV AH, 1 ;1号功能调用,键入i(i=03)INT 21HMOV DX,WATEST AL,1 ;判别键入数i是奇数还是偶数,D0位为0则为偶数JZ NRSMOV CL, 4 ;i为奇数将a3、a1移至各自字节的低4位SHR DX, CLNRS: TEST AL,2 ;判别键入数i的D1位是0还是1?JZ HNSLMOV DL, DH ;i的D1位为1则是取a3或a2,将其送

30、DLHNSL: AND DL, 0FH ;取低4位MOV BA, DLretbegin endpcode endsend begin本题还可以将键入值乘以4得到将ai移到WA的低4位的移位次数,对WA执行移位操作即可将ai移到WA的低4位。取WA的低4位送入BA中。即将分支程序设计成较简单的顺序程序。用此方法的编制的程序段如下:MOV AH, 1INT 21HMOV CL, AL ;将键入数(ASCII码)送移位次数寄存器CLAND CL, 0FH ;将移位次数的ASCII码变为二进制数SHL CL, 1 ;将键入i值乘以4SHL CL,1MOV AX,WASHR AX,CL ;右移4i次,将

31、ai移到最低4位AND AL,0FH ;取aiMOV BA,AL3-9stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentW2 DD 8920B094Hdata endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axTEST WORD PTR W2+2, 8000H;检测原码数的符号JZ BAK;正数的原码与补码相同不用再求AND WOR

32、D PTR W2+2,7FFFH;求负数的绝对值NOT WORD PTR W2+2;双字求补NOT WORD PTR W2ADD WORD PTR W2,1ADC WORT PTR W2+2,0BAK: retstart endpcode endsend start3-10stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentX DW 8100HY DW 9420HK DB 0data endscode segmentbegin proc farassume ss: stack, cs: code, ds:

33、 datapush dssub ax, axpush axmov ax, datamov ds, axAND X, 0FFFFH ;根据X是否为0置ZFJZ K0AND Y, 0FFFFH ;根据Y是否为0置ZFJZ K0TEST X, 8000H ;测试X的符号JZ K14 ;X>0去K14TEST Y, 8000H ;X<0测试Y的符号JZ K2 ;Y>0去K2MOV K, 3RETK2: MOV K, 2RETK0: MOV K, 0RETK14: TEST Y, 8000H ;X>0测试Y的符号JZ K1 ;Y>0去K1MOV K, 4RETK1: MOV

34、 K, 1retbegin endpcode endsend begin 先赋值再作判别可以减少分支。第一次判X、Y是否为0,为0落在数轴上K=0;不为0作第二次和第三次判别。第二次判X、Y是否异号,异号落在2、4象限K=2,同号落在1、3象限K=1,再作第三次判别,判Y是正数还是负数,Y>0,则落在1、2象限;若Y<0,则落在3、4象限,将K加上2。根据该方法编写的程序段如下:MOV K,0AND X,0FFFFHJZ BACK ;X=0去BACKAND Y, 0FFFFHJZ BACK ;Y=0去BACKMOV K, 2MOV AX, XXOR AX, YJS K24 ;XY异

35、号,落在2,4象限MOV K,1 ;XY同号,K=1,落在1,3象限K24: CMP Y,0JNS BACK ;Y>0,落在1、2象限ADD K,2 ;Y<0,落在3、4象限K+2 BACK ret3-11stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentIBUF DB 9,0,9 DUP(0)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dsmov ax,0push axmov ax,datam

36、ov ds,axMOV DX,OFFSET IBUFMOV AH,10INT 21HMOV CX, MOV SI,2AG: SHR IBUFSI,1RCL DH,1INC SILOOP AGMOV DL,DHMOV CL,4SHR DL,CLCMP DL,39HJBE NAD71ADD DL,7NAD71: MOV AH,2INT 21HMOV DL,DHAND DL,0FHCMP DL,39HJBE NAD72ADD DL,7NAD72: MOV AH,2INT 21Hretbegin endpcode endsend begi 3-12stack segment stack ¢s

37、tack¢dw 32 dup(0)stack endsdata segmentIBUF DB 5,0,5 DUP(0)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dsmov ax,0push axmov ax,datamov ds,axMOV DX,OFFSET IBUFMOV AH,10INT 21HMOV CL,IBUF+1MOV CH,0MOV SI,OFFSET IBUF+2 ;指向键入的第一个字符CMP BYTE PTR SI, ¢-¢ ;判是否为负数PUS

38、HF ;保护零标志,供转换之后再判别JNE SININC ;正数跳转,去SININCINC SI ;越过“-”号指向数字DEC CX ;实际字符数少1(“-”号)SININC: MOV AL, 0 ;开始将十进制数转换为二进制数AGAIN: MOV AH, 10 ;(0×10+a4)×10+)×10+a0MUL AHAND BYTE PTR SI, 0FH ;将十进制数的ASCII码转换为BCD数ADD AL,SIINC SILOOP AGAINPOPF ;恢复判断是否为负数时的零标志ZFJNZ NNEG ;非0即为正数,则不求补NEG AL MOV DL,ALM

39、OV DH,ALMOV CL,4SHR DL,CLCMP DL,39HJBE NAD71ADD DL,7NAD71: MOV AH,2INT 21HMOV DL,DHAND DL,0FHCMP DL,39HJBE NAD72ADD DL,7NAD72: MOV AH,2INT 21Hretbegin endpcode endsend begi3-13 stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentSW DW 1234HOBUF DB 5 DUP(0)data endscode segmentbegi

40、n proc farassume ss:stack,cs:code,ds:datapush dsmov ax,0push axmov ax,datamov ds,axMOV BX,5MOV OBUFBX,¢$¢MOV CX,10 MOV AX,SWAG: MOV DX,0AND AX,AXJZ SCDIV CXADD DL,30H DEC BXMOV OBUFBX,DL ;ASCII 码送输出数据区JMP AGSC: MOV DX,OFFSET OBUFADD DX,BXMOV AH,9INT 21Hretbegin endpcode endsend begin3-14st

41、acksegment stack ¢stack¢dw 32 dup(0)stackendsdatasegmentARRAYW DW 56, -56, 80, -80, 128, -128, 0, 512, NEQU ($ - ARRAYW)/2PLUSDW N DUP(0)MINUSDW N DUP(0)ZERONDW 0dataendscodesegmentstartproc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush xamov ax, datamov ds, axMOV CX, NMOV B

42、X, 0MOV SI, 0MOV DI, 0MOV ZERON, 0AGAIN: MOV AX, ARRAYWBXADD BX, 2AND AX, AX ;根据AX的值置ZF、SFJZ ZERJS MINMOV PLUSSI, AXADD SI, 2JMP COMMIN:MOV MINUSDI, AXADD DI, 2JMP COMZER:INC ZERONCOM:LOOP AGAINretstartendpcodeendsend start3-15stack segment stack ¢stack¢dw 32 dup (0)stack endsdata segmentO

43、BUF DB 6 DUP(0)data dedscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV CX, 24-2MOV AX, 0 ;第1项送AXMOV BX, 1 ;第2项送BXAGAIN: ADD AX, BX;第i项和第i+1项相加其和i+2项在AX中XCHG AX, BX;第i+2项和i+1项互换LOOP AGAINMOV AX, BX ;将第24项Fibonacci数送AXMOV DX,0 ;将第24项Fibo

44、nacci数扩展为32位二进制数MOV SI,0 ;建立OBUF变量数据区的位移指针MOV BX,10000MOV CX,4 ;除法4次的计数器AGAIN1: DIV BXADD AL,30H;将商转换为ASCII码MOV OBUFSI,ALINC SIMOV AX,BX ;将除数送AXMOV BX,DX ;将余数即下一次的被除数送BX暂存MOV DX,0 ;将除数扩展为32位,再除以10,得下一次的除数MOV BP,10DIV BP ;DX、AX除以BP结果在AX中,DX一定为0XCHG AX,BX ;将AX中的除数和BX中的被除数互换LOOP AGAIN1ADD AL,30H;将十进制数个

45、位转化为ASCII码MOV OBUFSI,AL;存入输出数据区中INC SIMOV OBUFSI,¢$¢MOV DX, OFFSET OBUFMOV AH, 9INT 21Hretstart endpcode endsend start3-16stack segment stack ¢stack¢dw 32 dup(0)stack endsdata segmentBUF DB 255,0,255 DUP(0)data endscode segmentstart proc farassume ss: stack, cs: code, ds: datapus

46、h dssub ax, axpush axmov ax, datamov ds, axMOV DX, OFFSET BUF ;建入一串字符MOV AH, 10INT 21HMOV SI,OFFSET BUT+2 ;SI指向串首MOV BX,SI ;BX指向串尾+1ADD BL,BUF+1 ;串首偏移地址加上键入字符个数ADC BH,0MOV BYTE PTR BX,¢$¢ ;串尾后送串结束符DEC BX ;BX指向串尾AGAIN: MOV AL,BX ;字符交换XCHG AL,SIMOV BX,ALDEC BX ;调整指针INC SICMP SI,BX ;两指针比较JC AGAINMOV BUF+1,0AH ;换行的A

温馨提示

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

评论

0/150

提交评论