版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.16编写程序段,使(AH)与( AL)中的内容互换。解1MOV BL,ALMOV AL,AH.MOV AH,BL解2XCHG AH,AL2.17编写程序段,使 (BL) 中高 4 位与低 4 位内容互换。解1MOV CL,4MOV BH,0SHL BX,CLADD BL,BH解2MOV CL,4ROL BL,CL2.18编写程序段,实现当(DL)是奇数时使(AL)=31H,否则使(AL)=30H。SHR DL,1MOV AL,0RCL AL,1ADD AL,30H2.20设寄存器AX中存放 1234H,BX寄存器中存放 1 ,执行 DIV BL 指令后,会发生什么现象?为什么?溢出,商超过
2、8位,在AL中存放不下商。2.21设 DX 寄存器中存放值为 0 ,AX中存放 1234H,BX中存放 1 ,执行 DIV BX 后,是否会出现与 2.20 相同现象?为什么?不会,因为是16位除法,商未超过16位2.22一字数据压栈时堆栈指针如何改变?弹出一字数据时堆栈指针如何改变?压栈时堆栈指针减2;弹出一字数据时堆栈指针加22.23 已知(SP)=2088H,(AX)=1A89H,(BX)=90CDH。依次执行以下三条指令后,画图说明堆栈中数据情况,及SP、AX、BX中数据。 PUSH AX PUSH BX POP AX(SP)=2086H,(AX)=90CDH,(BX)=90CDH。*
3、2.25编写程序段求8!(8的阶乘)。MOV AX,8MOV BX,7NEXT:DX,0 MUL BX DEC BX JNZ NEXT2.27假设(AX)=07EH,变量BUFFER中存放的内容为B5H,求下列各条指令单独执行后的结果。(1) AND AX,BUFFER 34H(2) XOR AX,BUFFER CBH(3) OR AX,BUFFER 0FFH(4) AND AX,0 0(5) XOR AX,OFFH 81H(6) TEST AX,8000H 相与结果为0时。AX为正,值不变*2.28编写程序段,判断(AL)中的有符号数是正数还是负数,正数在CL中写0,否则写1。CMP AL,
4、0MOV CL,0JGE NEXTMOV CL,1NEXT:2.29编写程序段,对存放在(DX)、(AX)中的双字数据求补。MOV BX,0SUB BX,AXMOV AX,BXMOV BX,0SBB BX,DXMOV DX,BX2.31假设(DX)=78D5H,(CL)=5,CF=0,确定下列各条指令单独执行后(DX)中的值。(1)SHL DH,1 (DX)=F0D5H(2)SAL DX, CL (DX)=1AA0H(3)SHR DX,CL (DX)=03C6H(4)SAR DL,1 (DX)=78EAH(5)ROL DX,CL (DX)=1AAFH(6)RCR DL,1 (DX)=786AH
5、(7)RCL DH,CL (DX)=0FD5H2.32按下列要求编写指令序列。(1)清除DH中最低3位而不改变其他位,结果存入BH。AND DH,0F8H(2)将DI中最高3位置1而不改变其他位。OR DI,0E000H(3)将AX中03位置1、79位取反、其他位清0。OR AX,0FHXOR AX,380HAND AX,38FH(4)检查BX中第2、5、9位是否至少有1位是1。TEST AX,224H 如果结果非0(5)检查CX中第1、6、11位是否同时为1。NOT CXTEST CX,842H 如果结果为0(6)检查BX中第0、2、9、13位是否至少有1位是0。NOT BXTEST BX,
6、2205H 如果结果非0(7)检查DX中第1、4、11、14位是否同时是0。TEST DX,4812H 如果结果为02.33编写指令序列分别实现下述功能。(1)右移DI3位,并将0移入最高位。MOV CL,3SHR DI,CL(2)将AL左移一位,将0移入最低位。SHL AL,1(3)DX右移6位且保持正负特性不变。MOV CL,6SAR DX,CL(4)将AL中压缩BCD码变成AX中的非压缩BCD码。MOV AH,0MOV CL,4SHL AL,CLMOV CL,4SHR AL,CL2.34分析下面的程序段完成什么功能?MOV CL,4SHR AX,CLMOV BL,DLSHR DX,CLS
7、HL BL,CLOR AH,BL将双字(DX,AX)逻辑右移4位*2.35设数据段偏移地址1000H处开始存放有10个字节数据,将其求和,结果存放在AX中。MOV CX,10MOV SI,1000HMOV AX,0CLCLOOP1:ADC AX,SI INC SI LOOP LOOP12.37 从键盘输入0到9之间某数字字符,利用列表法将该数字的平方值放到AL中。SUB DB 0,1,4,9,16,25,36,49,64,81MOV AH,1INT 21HSUB AL,30HMOV BL,ALMOV BH,0MOV AL,SUBBX2.38 已知X、Y、Z、P、K均为16位带符号数,求计算 (
8、1000+X*Y-Z)/P的程序段。注明结果的商与余数所存放的位置。MOV AX, X IMUL Y ; x*y MOV CX, AX MOV BX, DX MOV AX, Z CWD ;符号扩展,AX中符号扩展到DX中 SUB CX, AX SBB BX, DX ; x*y-z MOV AX, 1000 MOV DX,0 SUB AX, CX SBB DX, BX MOV BX, P IDIV BX ;(1000+X*Y-Z)/P4.1编制程序计算Y5X7,设X值在DAX字节单元,结果存入RLT字节单元。X为带符号整数。DATA SEGMENT DAX DB 15H RLT DB 0DATA
9、 ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV AL,DAX MOV BL,5 ;X*5 IMUL BL ;有符号数乘法 ADD AL,7 MOV RLT,AL MOV AH,4CH INT 21H CODE ENDS END START ;DAX绝对值不能超过18H (0-18H或0FFH-0E9H)。;否则,RLT得为字类型,ADD AL,7改为ADD AX,7;因为7已知为正,无需符号扩展。
10、4.3 编制程序计算XY。设X、Y分别在DAX、DAY单元,结果存入RESULT单元。(1)X、Y为字节数据 (2)X、Y为字数据 (3)X、Y为双字节数据要求:存取数据时至少使用三种不同的寻址方式。1、用直接寻址DATA SEGMENT DAX DB 18H DAY DB 65H RESULT DB 0DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV AL,DAX ; 源操作数为直接寻址
11、SUB AL,DAY MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END START2、换间接寻址与相对寻址DATA SEGMENT DAX DW 18H DAY DW 65H RESULT DW 0DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV SI,DAX MOV DI,RESULT MOV AX,SI ;源操作数为间接寻址 SUB AX,SI
12、+2 ; 源操作数为相对寻址 MOV DI,AX MOV AH,4CH INT 21H CODE ENDS END START3、X、Y为双字节数据,必须分高16位与低16位分别运算方法1DATA SEGMENT DAX DD 2A341928H DAY DD 6873BC25H RESULT DD 0DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV AX,WORD PTR DAX ;减低1
13、6位 SUB AX,WORD PTR DAY MOV WORD PTR RESULT,AX MOV AX,WORD PTR DAX+2 ;减高16位 SUB AX,WORD PTR DAY+2 MOV WORD PTR RESULT+2,AX MOV AH,4CH INT 21H CODE ENDS END START;特别注意加“WORD PTR”;注意低16位与高16位各是如何表示的。;还要注意,本题要求出现三种以上寻址方式。目前解中用到了寄存器寻址、直接寻址、间接寻址与相对寻址4种方式。方法2: LEA SI,DAX LEA DI,DAY LEA BX, RESULT MOV AX,SI
14、 SUB AX, DI ;减低16位 MOV BX,AX MOV AX,SI+2 SBB AX, DI+2 ;减高16位 MOV BX+2,AX4.4设内存OPCD单元存放一个16位代码,编制程序将其中1513,128,73,20位的代码分别存入WCD开始的单元。每段代码的最低位与单元的第0位对齐。解法1:DATA SEGMENT OPCD DW 2A5CH WCD DW ?,?,?,?DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV
15、 AX,DATA MOV DS,AX MOV AX,OPCD MOV CL,13 ;逻辑右移13位 SHR AX,CL MOV WCD,AX MOV AX,OPCD AND AX,1FFFH ;屏蔽高3位 MOV CL,8 ;逻辑右移13位 SHR AX,CL MOV WCD+2,AX MOV AX,OPCD AND AX,0FFH MOV CL,3 SHR AX,CL MOV WCD+4,AX MOV AX,OPCD AND AX,7 MOV WCD+6,AX MOV AH,4CH INT 21H CODE ENDS END START解法2:下面一种方法是4个字生成的程序段全一样,可以类似
16、于逻辑尺建立一个数据表,变成循环来做。 MOV AX,OPCD MOV CL,3 ROR AX ;循环右移3位 MOV BX,AX ;暂存AX AND AX,07H ;保留低3位 MOV WCD,AX MOV AX,BX ;恢复AX MOV CL,5 ROR AX ;循环右移5位 MOV BX,AX ;暂存AX AND AX,1F MOV WCD+2,AX ;保留低5位 MOV AX,BX MOV CL,5 ROR AX MOV BX,AX AND AX,1F MOV WCD+4,AX MOV AX,BX MOV CL,3 ROR AX MOV BX,AX AND AX,07H MOV WCD
17、+6,AX4.5利用查表的方法计算SX2Y2,设0X15,0Y15,且分别在DAX、DAY字节单元存放,结果存入RLT单元。DATA SEGMENT TAB DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 ;建立平方值表 DAX DB 11 ;假设X的值 DAY DB 13 ;假设Y的值 RLT DW ?DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV
18、DS,AX MOV AL,DAX LEA BX,TAB ;指向平方值表 XLAT ;根据X的值查表 MOV AH,0 MOV RLT,AX MOV AL,DAY ;根据Y的值查表 XLAT MOV AH,0 ADD RLT,AX ;求SX2Y2 MOV AH,4CH INT 21H CODE ENDS END START4.6编程实现把键入的一个字符,用二进制形式(0/1)显示出它的ASCII代码值。 MOV AH,1 ; 键入一个字符 INT 21H MOV CX,8NEXT: ROL AL,1 ;循环左移一位 MOV DL,AL AND DL,1 ;保留最低1位 ADD DL,30H ;显
19、示一位 MOV AH,2 INT 21H LOOP NEXT 4.7编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。 MOV AH,1 ; 键入一个字符 INT 21H CMP AL,a ;小于a(小A)退出 JB EXIT CMP AL,z JA EXIT ;大于 z(小z)退出 SUB AL,20H ;小写变大写MOV DL,AL ;显示 MOV AH,2 INT 21HEXIT: MOV AH,4CH INT 21H4.9设有如下程序段: LLL :JC LLL若 JC LLL 指令与 LLL :处指令间相隔 1000H个存储单元,这个程序段将出现何种异常现象?如何改造这个程
20、序段?转移超出范围,编译失败。可以给JC之后的语句加标号:NEXT,如下所示JC LLLNEXT:则程序改为:JNC NEXTJMP LLLNEXT:4.13编写程序,当DL是奇数时使AL=30H,否则使AL=31H。分析,如果DL是奇数,最低位应为1,将DL右移1位到CF中,CF将为1。 NOT DL ;将DL最低位1变0,0变1 SHR DL,1 ; 将DL最低位移到CF中 MOV AL,0 ; AL予清0 RCL AL,1 ; 将CF移到AL最低位中 ADD AL,30H说明,本解巧妙地不使用条件语句达到题目要求。4.16编写一个程序,把变量BUFX和BUFY中较大者存入BUFZ;若两者
21、相等,则把其中之一存入BUFZ中。假设变量存放的是8位无符号数。 MOV AL, BUFX MOV BUFZ, AL ;予将BUFX放到BUFZ中CMP AL, BUFYJAE EXIT MOV AL, BUFY ;如果BUFX小 XCHG AL, BUFZ ;将BUFY换到BUFZ中 EXIT: MOV AH, 4CH4.17 BUFX、BUFY和BUFZ是3个有符号16进制数,编写程序实现(1)如果这3个数都不相等,则显示0;(2)如果这3个数中有两个数相等,则显示1;(3)如果这3个数都相等,则显示2。 MOV CL, 0 ;计数 MOV AX, BUFX CMP AX, BUFY JN
22、E NEXT1 INC CL ;如果 BUFX和BUFY相等,将CL加1 NEXT1:MOV AX, BUFY CMP AX, BUFZ JNE NEXT2 INC CL ;如果 BUFY和BUFZ相等,将CL加1 NEXT2:MOV AX, BUFX CMP AX, BUFZ JNE NEXT3 INC CL ;如果 BUFX和BUFZ相等,将CL加1 NEXT3: CMP CL, 3 JNE NEXT4 DEC CL ;如果CL为3,减为2NEXT4: ; 4.18已知三个无符号数A、B、C,存放在ADR开始的连续单元,编写程序完成下述功能,若A、B、C同时为偶数,将FLAG单元置1;若同
23、时为奇数,将FLAG单元置0;否则FLAG单元置全1。解法1:如果ABC为字节类型: MOV CL, 0 ;计数 MOV AL, ADR SHR AL, 1 ;右移A,如果A为偶,CF将为0,否则为1 JC NEXT1 INC CL ;A为偶,将CL加1 NEXT1: MOV AL, ADR+1 ;字节类型加1 SHR AL, 1 JC NEXT 2 INC CL ;B为偶,将CL加1 NEXT2: MOV AL, ADR+2 SHR AL, 1 JC NEXT 3 INC CL ;C为偶,将CL加1 NEXT3: CMP CL, 3 ;以下判断CF,为3,则将FLAG单元置1 JNE NEX
24、T4 MOV FLAG,1 JMP EXITNEXT4: CMP CL,0 ;以下判断CF,为0,则将FLAG单元置0 JNE NEXT5 MOV FLAG,0 JMP EXITNEXT5: MOV FLAG,-1EXIT:解法2,如果ADR为字类型 MOV CL,0 MOV AX,ADR TEST AX,0001H ;与上一方法不同点,改为测试第0位 JNZ NEXT1 INC CL NEXT1: MOV AX,ADR+2 ;字类型加2 TEST AX,0001H JNZ NEXT2 INC CL NEXT2:MOV AX,ADR+4 TEST AX,0001H JNZ NEXT3 INC
25、CL NEXT3: CMP CX,0 JZ NEXT5 CMP CL,3 JZ NEXT4 MOV CL,0FFH JMP NEXT5NEXT4:MOV CL,1NEXT5:MOV FLAG,CL4.20要求A、B、C三数的中间数(中间数即该数小于一数而大于另一数),其中A、B、C及中间数的存储单元自行定义。假设A、B和C为无符号数,编写相关程序。若A、B和C为有符号数,则应如何修改程序。A DB 39HB DB 54HC DB 6AHD DB ?;只要将A、B、C从小到大排序,中间位置的就是中间数 MOV AL, A CMP AL, B JBE NEXT1 XCHG AL,B ;A>B
26、.交换AB的位置 MOV A,ALNEXT1: MOV AL, B CMP AL, C JBE NEXT2 XCHG AL,C ;B>C.交换BC的位置 MOV B,ALNEXT2: MOV AL, A ;再比较AB CMP AL, B JBE NEXT3 XCHG AL,B ;A>B.交换AB的位置 MOV A,ALNEXT3: MOV AL, B MOV D, AL; 有符号数题解见下题解,只将JBE换为JLE就可以了。4.21已知A、B和C存放在ADR开始单元,编制程序使之按递增顺序存放在NEW开始的单元。设A、B和C为带符号数。 MOV AL, A CMP AL, B JL
27、E NEXT1 XCHG AL,B ;A>B.交换AB的位置 MOV A,ALNEXT1: MOV AL, B CMP AL, C JLE NEXT2 XCHG AL,C ;B>C.交换BC的位置 MOV B,ALNEXT2: MOV AL, A ;再比较AB CMP AL, B JLE NEXT3 XCHG AL,B ;A>B.交换AB的位置 MOV A,AL4.23 编制程序计算: X*Y (Y=0,X=0)S XY (X0,Y0 XY (其它)设X,Y为双字节带符号数据,分别存放在DAX,DAY单元,计算结果存入RLT单元。 RLT DW ? DAX DW ? DAY
28、DW ? MOV CX,0 MOV AX, DAX CMP AX,0 JL NEXT1 INC CX ;X>=0NEXT1:MOV BX, DAY CMP BX,0 JL NEXT2 INC CX ;Y>=0NEXT2:CMP CX,2 JZ NEXT3 ; X*Y CMP CX,0 JZ NEXT4 ; XY ADD AX,BX JO NEXT5 CMP AX,8000H JL NEXT5 NEG AXNEXT5:MOV DAX,AX JMP EXIT1NEXT4:MOV DX,0 IDIV BX MOV DAX,AX JMP EXIT1NEXT3:IMULBX MOV DAX,
29、AX MOV DAY,DXEXIT1:4.24编写程序,将一个包含有20个有符号数据的数组ARRAYM分成两个数组,正数数组ARRAYP和负数数组ARRAYN,并分别把这两个数组中的数据个数显示出来。ARRAYM DB 20,48,149,212,33,200,198,23,25,53,199,214,225,245,123,1,12,43,54,165COUNT EQU $-ARRAYMARRAYP DB COUNT DUP(0)ARRAYN DB COUNT DUP(0)MOV BX,OFFSET ARRAYM ;源数据MOV SI,OFFSET ARRAYP ;存正数MOV DI,OFF
30、SET ARRAYN ;存负数MOV DH,0 ; 正数个数MOV DL,0 ; 负数个数MOV CX, COUNTLOOP1:MOV AL,BX ; 源数据中取1个数SHL AL,1 ; 看最高位JC NEXT1 ; 最高位为1则CF为1,有进位是负数MOV SI,AL ;存正数INC SI ; 正数指针加1INC DH ; 正数个数加1JMP NEXT2NEXT1: MOV DI,AL ;存负数INC DIINC DLNEXT2:INC BX LOOP LOOP14.25 已知内存DATA开始的存储区存放若干个字节数据,数据个数在COUNT单元中存放。编制程序求其中正数平均值及负数平均值,
31、并分别存入MEANP和MEANM单元。 BUF DB 27H,59H,0B3H,32H,8AH COUNT EQU $-BUF MEANP DB ? ;存正数平均值 MEANM DB ? ;存负数平均值 LEA SI,BUF ;指向BUF MOV CX,COUNT MOV DI,0 MOV BP,0 MOV DX,0 MOV BX,0 MOV AH,0 CLC ;清进位位L1:MOV AL,SI CMP AL,0 JL NEXT1 ;负数在NEXT1处理 ADC DL,AL ADC DH ;正数加到DX中 INC DI ;正数个数加1 JMP NEXT2NEXT1: NEG AL ;负数求其绝
32、对值 ADC BL,AL ;加到BX中 ADC BHINC BP ;负数个数加1NEXT2: INC SI ;准备取下一个数 LOOP L1 NEG BX ;负数之和 MOV CX,DI ;正数个数 MOV AX,DX ;正数总和 IDIV CL ;正数平均值 MOV MEANP,AL MOV AX,BX ;负数之和 MOV CX,BP ;负数个数 IDIV CL ;负数平均值 MOV MEANM,AL4.26 已知内存DATA单元开始连续存放若干个字符,编制程序求这些字符中出现次数最多的字符,将其出现次数及ASCII码分别存入NUMB和DATAM单元。分析:如果每出现一个字符,就设置一个变量
33、存放其出现次数,最后再找出现最多的字符,在循环过程中要不停地设置新变量,这样的程序不好设计。本解建立一个长度和ASCII码表相等(127)的数组,每一元素的地址就对应一个ASCII码值,每一元素存放该元素地址对应的ASCII码代表的字符出现次数。找到一个字符,就以其ASCII码值为地址,将该地址对应的存储单元中的数据加1.这样只对原串从始到终扫描一次,就能完成统计,再求最大值就容易了。这个方法我们称之为对号入座法。DATA SEGMENT A DB "ASESRFGDGRESDSSDDSXDREGHRD43RBVFB2S3432" COUNT EQU $-A B DB 12
34、7 DUP(0) ;对应某字符的ASCII码的地址中存放该字符出现次数 NUMB DB 0 DATAM DB 0DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX LEA SI,A ;指向字符串的指针 LEA DI,B ;存放相应字符出现次数 MOV CX,COUNTNEXT: MOV BL,SI ;取一个字符的ASCII码到BX中 MOV BH,0 INC BBX ;对应某字符的ASCII码的地址中
35、存放该字符出现次数加1 INC SI LOOP NEXT ;完成对所有字符的统计,以下求出现次数最多的 MOV SI,0 MOV CX,127 MOV DL,0NEXT1:CMP DL,BSI ;求B区中最大的数 JAE NEXT2 MOV DL,BSI MOV DI,SINEXT2:INC SI LOOP NEXT1 MOV NUMB,DL MOV AX,DI MOV DATAM,ALDATAM ADD DL,30H ;显示B区中最大的数 MOV AH,2 INT 21H MOV DX,DI ;相应地址数送DL准备显示出现最多的那个字符 MOV AH,2 INT 21H MOV AH,4CH
36、 INT 21H CODE ENDS END START4.27已知内存WORD单元开始存放两个字母个数相同的英文单词,词间用逗号分隔,编制程序将两个单词按字典顺序存放在DICT开始的存储区。分析:比较二个串的大小应当从第一个字符开始比较,直到找到一个不相同的字符为止,此时那个串的该字符大,该串就大,要排在后面。本程序先找大串,找到后将小串传DICT,再将大串接传DICT,最后显示DICT串。如果二串到最后一个字符还是一样大,表示二串一样大,则不移动原串,直接显示ORD1串。方法1,用传送指令完成DATA SEGMENT WORD1 DB "PRINT","PRI
37、NT" COUNT EQU ($-WORD1)/2 DICT DB COUNT*2 DUP(0)DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX LEA SI,WORD1 ;指向第一个字符串的指针 LEA DI,WORD1+COUNT ;存放相应字符出现次数 MOV CX,COUNTNEXT1: MOV BL,SI ;取一个字符的ASCII码到BX中 CMP BL,DI JA NEXT2
38、;如果找到第一个不相同的字符前串大转next1 JB NEXT5 ;如果找到第一个不相同的字符前串小转next2 INC SI INC DI LOOP NEXT1 ;如果字符相同继续向下找不同字符,完成对所有字符的统计 LEA DI,WORD1 ;以下显示原WORD1串 MOV CX,COUNT*2 JMP NEXT8 ;如果二串相同,转退出程序显示原WORD1串NEXT2:LEA SI,WORD1+COUNT ;先将较小的后串转存DICT,再将较大的前串转存DICT MOV CX,COUNT LEA DI,DICTNEXT3:MOV BL,SI MOV DI,BL INC SI INC DI
39、 LOOP NEXT3 LEA SI,WORD1 MOV CX,COUNT NEXT4:MOV BL,SI MOV DI,BL INC SI INC DI LOOP NEXT4 JMP NEXT7 ;排完序后转显示 NEXT5:LEA SI,WORD1 ;原串顺序已经符合字典顺序,直接全部转存DICT MOV CX,COUNT*2 LEA DI,DICTNEXT6:MOV BL,SI MOV DI,BL INC SI INC DI LOOP NEXT6NEXT7: LEA DI,DICT ;以下显示排好序的DICT串 MOV CX,COUNT*2 NEXT8: MOV DL,DI MOV AH
40、,2 INT 21H INC DI LOOP NEXT8 MOV AH,4CH INT 21H CODE ENDS END START方法2,用串操作指令完成DATA SEGMENT WORD1 DB "PRINT","PRINT" COUNT EQU ($-WORD1)/2 DICT DB COUNT*2 DUP(0)DATA ENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUME DS:DATA,ES:DATA,SS:STACK,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,WORD1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肛周脓肿术后切口护理
- 院前心电采集及术后随访系统解决方案
- 消化性溃疡的个案护理
- 儿童孤独症基层早期康复服务建设规范专家共识(2026年版)
- 贵州磷化有限责任公司重点产业人才专项招聘考试真题2025
- 2025年德宏州梁河县公安局招聘警务辅助人员真题
- 2026年昌都市工会系统事业单位人员招聘考试备考试题及答案详解
- 2026福建三明市沙县区委统一战线工作部招聘公益性岗位1人笔试备考试题及答案解析
- 2026年台州市仙居县教育局教师招聘18人考试模拟试题及答案解析
- 2026上海社会科学院工作人员公开招聘42名考试备考试题及答案解析
- 民族区域自治法课件
- 2025年校医考试题库及答案讲解
- 机器人技术机械臂
- 医院培训课件:《临床输血安全管理》
- 医疗垃圾分类培训考核试题(附答案)
- (国网)社会单位一般作业人-网络信息安全准入考试复习题及答案
- 常识题目及答案大全初中
- 2025年陕西高中学业水平合格考试地理试卷试题(含答案)
- 国际高中入学考-数学试题(英语试题)
- 2022省级政府和重点城市一体化政务服务能力评估报告
- 《小学语文新课程标准》
评论
0/150
提交评论