注册 登录
编程论坛 汇编论坛

[求助]这个实验代码那里错了???

a38747438 发布于 2006-12-31 16:45, 538 次点击

高手 帮我看看这个实验那里错了,谢谢~~~~~


给出一组数:
349AH,7802H,0FFFFH,1234H
9031H,0002H,867AH,2A3EH
将以上数据视为无符号数,找出其中最大数和最小数,并将结果以十六进制形式输出。


DATA SEGMENT
ARRAY DW 349AH,7802H,0FFFFH,1234H
DW 9031H,0002H,867AH,2A3EH
COUNT EQU 8D

MAX DW 0000H
MIX DW 0FFFFH

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
STA: MOV AX,DATA
MOV DS,AX


;查找最大值
MOV SI,OFFSET ARRAY
MOV CX,COUNT


MOV AX,[SI]
INC SI
DEC CX
CMP1: CMP AX,[SI]
MOV BX,[SI]
JA NEXT1
MOV AX,[SI]

NEXT1:INC SI
LOOP CMP1
MOV MAX,AX


MOV DX,MAX

;输出最大数的十六进制数
MOV BX,[MAX]
MOV CX,4
MAXOUT: ROL BX,4
MOV DL,BL
AND DL,0FH
ADD DL,30H
MOV AH,02H
INT 21H
LOOP MAXOUT


;查找最小值
MOV SI,OFFSET ARRAY
MOV CX,COUNT
MOV BX,[SI]
MOV AX,BX

INC SI
DEC CX
CMP2: CMP AX,BX
MOV BX,[SI]
JL NEXT2
MOV AX,BX
NEXT2:INC SI
MOV BX,[SI]
LOOP CMP2
MOV MIX,AX




MOV AH,4CH
INT 21H
CODE ENDS
END STA

3 回复
#2
菜鸟上路2006-12-31 17:33
ROL BX,4
应写成:
ROL BX,1
ROL BX,1
ROL BX,1
ROL BX,1
#3
a387474382007-01-02 02:37
把它改成四个吗??
#4
菜鸟上路2007-01-02 12:16

是的,或者改成rol bx,cx也可以

1