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

一个汇编语言的问题 冒泡法排序多个两位数,我的思路是把一个两位数存在一个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


0

1个回答

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
汇编语言课程设计冒泡法排序
Windows 32位汇编语言课程设计,关于冒泡法排序。
采用汇编语言冒泡法排序
采用汇编语言进行冒泡法排序,还包括8255的初始化程序 以及8259A的初始化编程
汇编语言实现冒泡法排序
利用冒泡法排序算法,将内存单元存储的数35H,78H,25H,13H,8H,D2H由大到小进行排序。 DATA SEGMENT DAT DB 35H,78H,25H,13H,8H,0D2H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,5 A...
汇编语言冒泡法排序
汇编语言冒泡法排序,里面有详细的注释,便于理解
汇编语言 冒泡法排序
汇编语言 冒泡法排序 清楚理解汇编的冒泡法排序
初学者!冒泡法排序,请指教!
public class Hiirnrn public static void main(String args[])rnrnint []a2;rnint j,s;rnrnfor(int i=0;i<=9;i++)rn a2[i]=i;rnfor(i=0;i<9;i++)rn for(j=i+1;j<=9;j++)rn if(a[i]
求大神解释一下输出结果
class Foo rn int i = 0;rnrnrnpublic class Bar extends Foorn int i = 1;rn public static void main(String[] args) rn Foo foo = new Bar();rn System.out.println(foo.i);rn rn
不能输出结果~~求指教
你好 刚刚你帮我看了那个前台查询的程序 我按你的改了一下 现在不提示错误了 但是输入查询条件 点击查询后 没有结果显示 我在想我这样跳转到自身页面可以吗?结果怎么才能输出。我把代码整理了一下,有时间麻烦你帮我看看好吗,谢谢了。rn<%@ page contentType="text/html;charset=utf-8"%> rn  <%@ page import="java.sql.*"%>rnrn rnrn rn rn rn 项目信息查询(PROJECT)rn PROJ_IDrn PROJ_SHORT_NAMErn rn rn rn rn PROJ_IDrn PROJ_SHORT_NAMErn LAST_SCHEDULE_DATErn SUM_DATA_DATErn rn <%rn tryrn Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); rn String url="jdbc:oracle:thin:@10.88.51.238:1521:ORCL"; rn //orcl为你的数据库的SID rn String username="admuser"; rn String password="abcd1234"; rn Connection conn = DriverManager.getConnection(url,username,password); rn Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//可更新rn String proid=request.getParameter("pro_id");rn String proname=request.getParameter("p_s_name");rn String sql="select PROJ_ID,PROJ_SHORT_NAME,LAST_SCHEDULE_DATE,SUM_DATA_DATE FROM PROJECT where PROJ_ID="+proid+" and PROJ_SHORT_NAME='"+proname+"'";rn ResultSet rs=stmt.executeQuery(sql);rn while(rs.next())rn %>rn rn <%=rs.getInt("PROJ_ID")%>rn <%=rs.getString("PROJ_SHORT_NAME")%>rn <%=rs.getString("LAST_SCHEDULE_DATE")%>rn <%=rs.getString("SUM_DATA_DATE")%>rn rn <%rn rn %> rn <%rn rs.close();rn stmt.close();rn conn.close();rn catch(Exception e)rn e.printStackTrace();rn rn %> rn rn rn rnrn
将几个自然数排序输出[冒泡法排序]
12,54,32,10,85rnrn将上面几个数冒泡法从大到小输出.(不是冒泡法也可)rn在combobox里显示.
求大神指教!!!vigenere密码程序无法输出结果
#includern#includern#includernrnvoid Encry()rnrn char key[100];rn char ch, temp;rn int L, i = 0, j = 0;rn if (getchar() == '\n')rn temp = ' ';rn printf("请输入密钥:");rn gets_s(key,100);rn L = strlen(key);rnrn printf("请输入明文:");rnrn while ((ch = getchar()) != '\n')rn rn if (ch = ' ')rn rn i++;rn continue;rn rn if (ch >= 'a'&&ch <= 'z')rn rn printf("%c", (ch + key[j%L] - 'a' - 'a') % 26 + 'A');rn j++;rn rn if (ch >= 'A'&&ch <= 'Z')rn rn printf("%c", (ch + key[j%L] - 'a' - 'A') % 26 + 'A');rn j++;rn rn if (j%L == 0)rn printf(" ");rn i++;rn rn putchar(ch);rnrnrnvoid Decry()rnrn char key[100];rn char ch, temp;rn int L, i = 0, j = 0;rn if (getchar() == '\n')rn temp = ' ';rn printf("请输入密钥:");rn gets_s(key,100);rn L = strlen(key);rnrn printf("请输入密文:");rnrn while ((ch = getchar())!= '\n')rn rn if (ch == ' ')rn rn i++;rn continue;rn rn if (ch >= 'A'&&ch <= 'Z')rn rn printf("%c", (ch - key[j%L] - 'A' + 'a' + 26) % 26 + 'a');rn j++;rn rn if (j%L == 0)rn printf("");rn i++;rn rn putchar(ch);rnrnrnint Exit()rnrn exit(0);rnrnrnint main()rnrn char ch;rn for (;;)rn rn printf("请输入操作 e:加密 d:解密 q:退出 ");rn ch = getchar();rn if (ch == 'e' || ch == 'E')rn Encry();rn else if (ch == 'd' || ch == 'D')rn Decry();rn else if (ch == 'q' || ch == 'Q')rn Exit();rn elsern rn printf("输入命令错误");rn putchar(getchar());rn continue;rn rn rn return 0;rn
汇编语言采用冒泡法对无符号数进行排序
汇编语言采用冒泡法对无符号数进行排序,无符号数和带符号数定义时没区别,主要是在你的程序中指令的选择。
汇编语言冒泡法实现一组数的排序
汇编语言冒泡法排序,实现一组数的排序。汇编语言的基础运用
汇编语言采用冒泡法带符号数进行排序
汇编语言采用冒泡法带符号数进行排序,主要是指令的选择,还有就是显示部分的设计,如何正确显示:0,正数,负数。
冒泡法排序
1. 冒泡法排序原理 假设有N个数,要求按从小到大顺序排列 a. 进行N-1次循环 b. 在每一次循环中 假设有n个数,首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后,(这时一共比较了n-1次) 2. 冒泡法排序的应用 当待排序的元素规模小:用冒泡排序。...
排序(冒泡法)
我们来看一个简单排序题目: 题目描述: 对输入的n个数进行排序并输出。 输入: 输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。 输出: 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。 样例输入: 4 1 4 3 2 样例输出: 1 2 3
冒泡法 排序
package Sort; import java.util.Random; public class BubbleSort_Solution { /* * 简单交换排序 不是标准的冒泡排序 */ public static void BubbleSort0(int[] a) { int i, j; for (i = 0; i for (j = i +
求大神指教为什么抄写的代码运行不了?
![这是在B站找的Python教学视频[](https://img-blog.csdn.net/2018090720480386?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0wxNTI2NDQ5Njky/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)...
64win7系统下数据库连接不了,求大神指教
打开了控制面板->点击数据源->点击DNS系统,为什么里面什么都驱动都没有?求指点,急需,不甚感激!
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合