永发信息网

汇编语言编写程序

答案:2  悬赏:70  手机版
解决时间 2021-01-25 11:28
从首地址为1000H开始存放数据,从小大大排序后仍放在该区域。下面程序错在哪里了?

DATA SEGMENT

ORG 0FFEH
ARRAY DB 100
DB ?
DB 100 DUP(?)
BUF1 DB 'PLEASE INPUT STRING$'
BUF2 DB 'THE ORDER IS$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF1
MOV AH,09H
INT21H

MOV DX,OFFSET ARRAY
MOV AH,0AH
INT21H

MOV AX,DATA
MOV DS,AX
MOV CX,[0FFFH]
L1:
DEC CX
MOV DI,CX
MOV BX,0
L2:
MOV AX,[1000H+BX]
CMP AX,[1000H+BX+1]
JBECONTINUE
XCHG AX,[1000H+BX+1]
MOV [1000H+BX],AX
CONTINUE:
INC BX
LOOPL2
MOV CX,DI
LOOPL1

CALLNEAR PTR CURS

MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF2
MOV AH,09H
INT21H

MOV DX,1000H
MOV AH,09H
INT21H

MOV AH,4CH
INT21H

MAIN ENDP

CURS PROC NEAR
MOV AL,02H
MOV BH,00H
MOV DH,03H
MOV DL,00H
INT10H
RET
CURS ENDP

CODE ENDS
END
最佳答案
DATA   SEGMENT

 ARRAY  DB   100
        DB   ?
        DB   100   DUP(?)
  BUF1  DB   'Please  input  string : $'
  BUF2  DB   'The  order  is : $'
DATA   ENDS

CODE   SEGMENT
    ASSUME   CS:CODE, DS:DATA
MAIN   PROC
    MOV   AX, DATA
    MOV   DS, AX

    MOV   DX, OFFSET  BUF1
    MOV   AH, 09H
    INT   21H

    MOV   DX, OFFSET  ARRAY
    MOV   AH, 0AH
    INT   21H

    MOV   CL, ARRAY + 1
    MOV   CH, 0
    DEC   CX
L1:
    MOV   DI, CX
    MOV   BX, 0
L2:
    MOV   AL, [ARRAY + BX + 2]
    CMP   AL, [ARRAY + BX + 3]
    JBE   CONTINUE
    XCHG  AL, [ARRAY + BX + 3]
    MOV   [ARRAY + BX + 2], AL
CONTINUE:
    INC   BX
    LOOP  L2

    MOV   CX, DI
    LOOP  L1

    MOV   BL, ARRAY + 1
    MOV   BH, 0
    MOV   [ARRAY + BX + 2], '$'

    MOV   AH, 2
    MOV   DL, 13
    INT   21H
    MOV   DL, 10
    INT   21H

    CALL  NEAR  PTR  CURS

    MOV   DX, OFFSET  BUF2
    MOV   AH, 09H
    INT   21H

    MOV   DX, OFFSET  ARRAY
    ADD   DX, 2
    MOV   AH, 09H
    INT   21H
EXIT:
    MOV   AH, 4CH
    INT   21H

MAIN   ENDP

CURS   PROC   NEAR
    MOV   AL, 02H
    MOV   BH, 00H
    MOV   DH, 03H
    MOV   DL, 00H
    INT   10H
    RET
CURS   ENDP    

CODE   ENDS
    END    MAIN

可以了。
全部回答
; 本程序通过编译,运行正确 code segment assume cs:code,ds:code ; ----------------------------------------- ; 入口参数 ; si=声音频率地址 ; bx=时间节拍地址 do_music proc near push dx push cx push ax @@sound: test word ptr [si],0ffffh jz @@return mov al,0b6h ;向计数器写控制字 out 43h,al ;方式3、双字节写和二进制计数方式写到控制口 mov dx,12h ;设置被除数 mov ax,533h*896 div word ptr [si] ;其商ax为预置值 out 42h,al ;先送lsb mov al,ah out 42h,al ;后送msb in al,61h ;读端口原值 mov ah,al or al,3 out 61h,al ;接通扬声器 mov cx,[bx] @@waitf1: push cx mov cx,28010 ;设循环次数为8ff0h @@delay1: loop @@delay1 pop cx ;循环持续cx次,即传进来的节拍时间 loop @@waitf1 inc si inc si ;下一个频率值 inc bx inc bx ;下一个节拍值 mov al,ah ;写回61h端口值,关闭扬声器 out 61h,al ;关闭扬声器 jmp @@sound @@return: pop ax pop cx pop dx ret do_music endp ; ----------------------------------------- didas equ 18 ;延时(时钟嘀嗒次数) ; 《圣诞铃声》频率值 christ_freq dw 7 dup(330),392,262,294,330,4 dup(349),2 dup(330),330,294,294,262 dw 294,392,7 dup(330),392,262,294,330,4 dup(349),2 dup(330),392,392 dw 349,294,262,0 ; 最后一个0控制结束;设置节拍时间时,采用了25*400=10000表示4/4拍的音节,即0.25秒(四分音符),0.5秒用50*400表示 christ_time dw 2 dup(25*400,25*400,50*400),4 dup(25*400),100*400 dw 2 dup(25*400,25*400,50*400),4 dup(25*400),2 dup(50*400) dw 2 dup(25*400,25*400,50*400),4 dup(25*400),100*400 dw 2 dup(25*400,25*400,50*400),4 dup(25*400),100*400 start: push cs pop ds push cs pop es ;使数据段、附加段与代码段同段 lea si,christ_freq ;对应的频率值地址 lea bx,christ_time ;对应的节拍值地址 call do_music ;激活扬声器,使之发出指定频率、指定时长的声音,奏乐 exit_proc: mov ah,4ch ;结束程序 int 21h code ends end start ;编译到此结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
口腔电测WL什么意思
厦门大学研究生会计系复试线多少
凉风村地址有知道的么?有点事想过去
华峰汽车装具店地址有知道的么?有点事想过去
唐舞桐的武魂是什么?她是不是王冬儿?
根据我国《中央企业综合绩效评价实施细则》的
北非有哪些国家
我之前送女朋友一个很便宜的戒指,我现在想给
谁能告诉我怎么向攀藤网申请赞助啊,流程是什
王军无意中知道了好朋友吴海的QQ号和密码,他
oppoR9怎么查询激活日期
沈阳有轨电车5号线能到抚顺最后一站的望花吗
在天津市里找工作好找吗?通过什么途径?
mac 系统 word 选中字后背景色全为黑色
我178cm,70kg 请高手换算成英尺 和 磅 谢谢
推荐资讯
1 1 8 2 5 13 3 21后面是什么数字?按规矩填
你好 我做的网贷上征信如果不还会有什么后果
求人教我电子得失法配平,越详细越好.
怎么购买植物大战僵尸花园战争2
QQ冻结次数多了会不会永久冻结?
自己在外地回不来车子可以叫别人年检吗
【谈谈你对爱情的理解】谈谈你对宝黛爱情悲剧
谁有蒙泰软件下载呀,5.0,5.1,5.2,5.3都提供
以下不属于公共安全管理的是()。
超六类网线什么意思
乐可多溜冰城地址有知道的么?有点事想过去
qq宠物怎么解除结婚状态??
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?