当前位置: 代码迷 >> 汇编语言 >> 汇编语言 简单查找和统计有关问题 请帮忙修改 感谢
  详细解决方案

汇编语言 简单查找和统计有关问题 请帮忙修改 感谢

热度:1527   发布时间:2013-02-26 00:00:00.0
汇编语言 简单查找和统计问题 请帮忙修改 感谢
从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具体的我也想不明白
  相关解决方案