1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| .486 ;方法选择伪指令,汇编80486实模式 DATA SEGMENT USE16 ;段长度64KB,偏移地址16位,用16位寻址 BUF DB 'QWERTYUIOP123' COUNT EQU $-BUF ;统计串长度13 MAX DB 'MAX=',?,0DH,0AH,'$' ;回车,换行,字符串结束符 DATA ENDS
CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA ;段约定,CODE命名代码段,DATA命名数据段 BEG: MOV AX,DATA MOV DS,AX ;寄存器寻址 MOV AL,0 LEA BX,BUF ;BX=串首址偏移量 MOV CX,COUNT ;立即寻址 LAST: CMP [BX],AL ;比较BX地址保存的ASCII码值-AL JC NEXT ;当进/借位标C为1,也就是[BX]<AL时跳转 MOV AL,[BX] ;当[BX]>=AL时,AL=[BX] NEXT: INC BX LOOP LAST ;CX-=1,若CX不为0转移 MOV MAX+4,AL ;?=AL MOV AH,9 ;功能号09H,显示字符串,BS:DX=字符串首地址 MOV DX,OFFSET MAX INT 21H ;软中断调用DOS系统 MOV AH,4CH ;终止功能 INT 21H CODE ENDS END BEG ;END程序启动地址标号
|