1、FU DB -DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,X AND AL,AL JZ L1 SHL AL,1 JC L3 JMP L2L1: MOV DX,OFFSET W MOV AH,9 INT 21H JMP L4L2: MOV DX,OFFSET ZHENGL3: MOV DX,OFFSET FUL4: MOV AH,4CHCODE ENDS END START 实验二:求十个数中的最小数,并以十进制输出。(若要求最大的,只要把JC 改为JNC 即可)(仅局限于0-16间
2、的数比较,因为ADD AL,30H只是针对一位的十六进制转换十进制的算法)XDAT DB 0AH,1FH,02H,03H,04H,05H,06H,07H,08H,09HMIN DB ? is min MOV CX,9 MOV SI,OFFSET XDAT MOV AL,SI CMP AL,SI+1 JC L1 MOV AL,SI+1 INC SI LOOP L2 ADD AL,30H MOV DL,AL MOV AH,2 MOV DX,OFFSET W END START实验三:设有3个单字节无符号数存放在BUF开始的缓冲区中,编写一个能将它们从大到小从新排列的程序。 BUF DB 87,23
3、4,123 MOV SI,OFFSET BUF MOV AL,SI ;把3个数取到寄存器中 MOV BL,SI+1 MOV CL,SI+2 CMP AL,BL ;排序,将最大数送AL寄存器 JAE NEXT1 XCHG AL,BLNEXT1:CMP AL,CL JAE NEXT2 XCHG AL,CLNEXT2:CMP BL,CL ;将最小输送CL寄存器 JAE NEXT3 XCHG BL,CLNEXT3:MOV SI,AL ;从大到小依次存回缓冲区,AL,BL,CL MOV SI+1,BL MOV SI+2,CL MOV AH,4CH实验三(2):设某一数组的长度为N,个元素均为字数据,试编
4、制一个程序使该数组中的数据按照从小到大的次序排列。(要从大到小排序,只需把JBE改为JAE即可)ADATA SEGMENT N EQU 10 DATA DW 87,54,78,45,35,23,04H,12H,03H,21H ADATA ENDSACODE SEGMENTACODE,DS:ADATA START:MOV AX,ADATA MOV BX,0 MOV CX,N DEC CX LOP1: MOV DX,CX LOP2: MOV AX,DATABX CMP AX,DATABX+2 JBE CONTI XCHG AX,DATABX+2 MOV DATABX,AX CONTI: ADD B
5、X,2 LOOP LOP2 MOV CX,DX LOOP LOP1 ACODE ENDSEND START 实验四:求十个数中的最小数,并以十六进制输出。(若要求最大的,只需把JC 改为JNC 即可)XDAT DB 0AH,1FH,0FH,0FH,0EH,0BH,0CH,0DH,0EH,0CHTAB DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46HSSEG SEGMENT STACK DW 100 DUP(?SSEG ENDSCALL DISPP DISPP PROC NEAR PUSH DX PUSH CX MOV CL,4 ROL DL,CL AND DL,0FHCALL DISP1 POP CX POP DXRETDISPP ENDPDISP1 PROC NEAR PUSH AX PUSH BX MOV AL,DL MOV BX,OFFSET TAB MOV AH,0 ADD BX,AX MOV DL,BX POP BX POP AXDISP1 ENDP
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1