n1 db 1,99,-2
max db 0
.
.
mov bx,offset n1
mov al,[bx]
cmp al,[bx+1]
jg s1
mov al,[bx+1]
s1:
cmp al,[bx+2]
jg s2
mov al,[bx+2]
s2:
mov max,al谢谢,怎么把最大值在命令窗口输出。要实现输出比较麻烦:1、因为是带符号数,所以必须先判断正负,即高位是否为1,为1是负数(需求补码),否则为正。2、将该数除以100确定百位数字,余数再除以10确定十位数字,除以10后的余数为个位数字。3、将百位、十位及个位数字转换成ASCII码(即分别加上30H)4、分别将转换成ASCII码后的百位、十位及个位数字放入DX寄存器,用DOS的2号功能调用实现显示。说的很详细了,你应该可以自己看懂以下代码了。。。DATA SEGMENTN1 DB-1,-4,-50MAX DB0DATAENDSSTACK SEGMENT STACK DB 200 DUP(0)STACK ENDSCODE SEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOVBX,OFFSET N1 MOVAL,[BX] CMPAL,[BX+1] JGS1 MOVAL,[BX+1]S1: CMPAL,[BX+2] JGS2 MOVAL,[BX+2]S2: MOV MAX,ALtest al,80hjz zzzneg almov dl,'-'push axmov ah,2int 21hpop axzzz:mov ah,0mov dl,100div dlpush axmov ah,2mov dl,aladd dl,30hint 21hpop axmov al,ahmov ah,0mov dl,10div dladd ax,3030hpush axmov ah,2mov dl,alint 21hpop axmov dl,ahmov ah,2int 21h MOV AH,4CH INT 21HCODE ENDS END START