从num单元开始依次存有9个有符号数 要求实现找出最小的放min 还要把负数个数显示到屏幕上。
我是初学者 很多不懂 我写完后 无语法错误但出不来结果 请高手帮忙修改
.486
DATA SEGMENT USE16
NUM DB -1,1,-2,2,-3,3,-4,4,-5
MIN DB ?
BUF DB ?,'$'
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
MOV DS,AX
MOV CX,8
MOV SI,OFFSET NUM
MOV BL,0
LAST: MOV AL,[SI]
MOV AH,[SI+1]
CMP AL,AH
JG NEXT1
MOV [SI],AH
MOV [SI+1],AL
NEXT1: CMP BYTE PTR[SI],0
JG NEXT2
INC BL
NEXT2: INC SI
LOOP LAST
MOV AL,BYTE PTR [SI]
MOV MIN,AL
CMP BYTE PTR[SI],0
JG DONE
INC BL
DONE: MOV BUF,BL
MOV AH,9
MOV DX,OFFSET BUF
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
------解决方案--------------------------------------------------------
线性依次两两比较NUM,最好不要将个数硬编码,而是采用LENGTHOF的方法。
输出时注意符号的显示判断,比如最高位为1.
------解决方案--------------------------------------------------------
你的这个程序我在MASMPlus里面运行过了,源程序有两个错误BEG:MOV BX,DATA里面error A2004: symbol type conflict, END BEG处warning A4023: with /coff switch, leading underscore required for start address : BEG具体的我也想不明白