永发信息网

【汇编语言程序设计】将内存DATA开始存放的10个8位带符号二进制数进行由小到大排序的程序

答案:2  悬赏:20  手机版
解决时间 2021-01-20 23:50
【汇编语言程序设计】将内存DATA开始存放的10个8位带符号二进制数进行由小到大排序的程序
最佳答案
CODE  SEGMENT
              ASSUME    CS:CODE
              ORG       100H
      START:  JMP       BEGIN
        DATA  DB        10,9,8,7,6,5,4,3,2,1
         NUM  EQU       $-DATA

      BEGIN:
              PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES
              LEA       SI,DATA
              MOV       CX,NUM
              CALL      SORTBYTE

              MOV       AH,4CH
              INT       21H

;===============================================
; 字节数组排序(有符号数冒泡排序)
    SORTBYTE  PROC      NEAR
      ; 数组长度置入cx,字数组首地址置入 si
              PUSH      AX
              PUSH      CX
              PUSH      DX
              PUSH      SI
              PUSH      DI
              PUSHF
              PUSH      CX
              POP       DX
              DEC       DX
   @SORTBL1:
              MOV       CX,DX
              MOV       DI,SI
   @SORTBL2:
              MOV       AL,[DI+1]
              CMP       AL,[DI]
              JG        @SORTBNEXT  ; 从小到大(无符号换成 JB)
              XCHG      AL,[DI]
              MOV       [DI+1],AL
 @SORTBNEXT:
              INC       DI
              LOOP      @SORTBL2
              DEC       DX
              JNZ       @SORTBL1
              POPF
              POP       DI
              POP       SI
              POP       DX
              POP       CX
              POP       AX
              RET
    SORTBYTE  ENDP
;===============================================

        CODE  ENDS
              END       START
全部回答

dseg segment
 a1 dw 1212h,3434h,5656h,7878h,9090h,2121h,4343h,6565h,8787h,9999h
 c equ ($-a1)/2
dseg ends
assume cs:cseg, ds:dseg
cseg segment
start:
  mov ax, dseg
  mov ds, ax
  mov cx, c*2
  dec cx
  dec cx
$0:
  mov bx, 0
$2:
  mov ax, a1[bx]
  cmp ax, a1[bx+2]
  jg $1
  xchg ax,a1[bx+2]
  mov  a1[bx], ax
$1:
  inc bx
  inc bx
  cmp bx, cx
  jl $2
  dec cx
  dec cx
  jg $0
  ;print result
  mov cx, c
  mov bx, 0
$3:
  mov ax, a1[bx]
  call print
  mov ax,0e20h
  int 10h
  inc bx
  inc bx
  loop $3
  mov ah,4ch
  int 21h
print proc near
  push cx
  push bx
  xor cx, cx
  mov bx, 10
  test ax, 8000h
  jz Q0
  push ax
  mov ah,0eh
  mov al,'-'
  int 10h
  pop ax
  neg ax
Q0:
  xor dx, dx
  div bx
  xor dx,0e30h
  push dx
  inc cx
  cmp ax, 0
  jnz Q0
Q1:
  pop ax
  int 10h
  loop Q1
  pop bx
  pop cx
  ret
print endp
cseg ends
end start
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
“郯”怎么读
测名字打分严金言
等腰三角形、正方形、圆中,对称轴最多的是__
从海淀区打车到房山区城关街道德润街12号院中
在英国警察局登记注册 需要带哪些证件
你们玩英雄联盟都是为了什么?
新买李维斯方正炫彩蓝色系列FS523-0004牛仔裤
长安cs75和长安福特博毅哪个好
锻造心情阅读答案
如何做可以使雨伞防风
2016无为职教分班
单选题下列叙述中,正确的是A.物体温度越高,
我要的那种坚强,并不是谁的肩膀。是什么歌
29岁用什么牌子的面膜好?
庆云寺的浦东庆云寺
推荐资讯
腿毛可以剪吗(用剪刀)
有谁会做表格,员工产量表格
谁能告诉我建房许可让怎么办?谢谢!
宏碁E1-571G的光驱厚度,准备入手一块固态硬
0.85乘以4.5加5.5乘以0.85怎么简算
建设项目按照什么的要求进行划分
临沂第十二中学北校区吃得怎么样
最大可能蒸发量是指地表在水分充足的条件下产
沧州市到黄递铺怎么走
致密硫化金矿怎么处理
为什么我的QQ空间莫名的多了几十万张相片.
年薪23万,开2万元的二手车适不适合?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?