qq_34378013 2017-04-16 12:21 采纳率: 14.3%
浏览 1671

汇编语言冒泡法排序两位数 输出不了结果 求大神指教

一个汇编语言的问题 冒泡法排序多个两位数,我的思路是把一个两位数存在一个AL里面然后排序再输出
但是没有办法输出结果 哪位大神可以点明一下 刚入门汇编 还不太懂 多谢多谢

 DATA SEGMENT                   
  NUMBER DB 100,?,100 DUP(?)               ;开辟空白空间
  TAB DB 0DH,0AH,'$'                     ;空格回车
  LIST1 DB 'INPUT NUMBERS$'               ;输入数字
  LIST2 DB 'INPUT NUMBERS$'               
DATA ENDS

CODE SEGMENT
  ASSUME DS:DATA , CS:CODE
START:
  MOV AX,DATA
  MOV DS,AX
  LEA DX,LIST1                         ;将文字显示到屏幕上
  MOV AH,09H                         ;09H功能 显示字符
  INT 21H                             ;DOS调用
  LEA DX,TAB                            ;空格回车
  MOV AH,09H                          ;显示回车空格在屏幕上
  INT 21H


INPUT:  
  LEA BP,NUMBER
  XOR BX,BX
  MOV AH,01H
  INT 21H
  SUB AL,30H
  MOV AH,00H
  MOV BL,10H
  MUL BL                      ;BL和AL相乘放在AX里
  MOV CL,AL
  MOV AH,01H
  INT 21H
  SUB AL,30H
  MOV AH,00H
  ADD AL,CL
  MOV DS:[BP],AL;存入NUMBER中
  CMP AL,24H;判断是否与¥一样
  JZ LP0
  INC BP
  INC BL
  JMP INPUT

LP0:
  LEA SI,NUMBER
  INC SI                                 ;SI-1
  MOV CL,[SI]                            ;输入个数->CL
  DEC CL
  INC SI
  MOV BX,SI                              ;外循环初始化SI=BX,CH=CL
  MOV CH,CL
  MOV AL,[BX]

LP1:
  INC BX
  CMP [BX],AL                             ; [BX]-AL是否有近位 即CF=1
  JNC LP2
  XCHG AL,[BX]

LP2:
  DEC CH
  JNZ LP1                                  ;不为零跳转
  CMP CH,'0'
  JE LP3

LP3:
  MOV [SI],AL
  INC SI
  DEC CL
  JNZ LP0
  CMP CL,'0'
  JE LP4

LP4:
  MOV AL,'$'                                  ;代表‘ONPUT NUMBER’字符串
  MOV [SI+1],AL
  LEA DX,TAB
  MOV AH,09H
  INT 21H

  LEA DX,LIST2
  MOV AH,09H
  INT 21H
  LEA DX,TAB
  MOV AH,09H
  INT 21H

  MOV DX,OFFSET NUMBER                          ;将NUMBER的偏移地址给DX
  INC DX
  INC DX
  MOV AH,09H
  INT 21H
  MOV AH,4CH
  INT 21H

CODE ENDS
  END START


  • 写回答

1条回答

  • threenewbee 2017-04-16 13:09
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大