|
汇编作业:
编程要求及提示:
[1] 参加排序的数据及个数由学生自己定义。
[2] 要将排序前的数组和排序后的数组在屏幕上显示出来。
[3] 实验步骤
a. 用全屏幕编辑软件建立源程序。
b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。
c. 用link.exe连接程序对目标程序进行连接形成可执行文件。
d. 用DEBUG对连接通过的可执行程序进行调试。
- DATA SEGMENT
- NUM DW 0008H
- VAR1 DW 100AH,0A010H,010CH,02ACH,04BCH,0934H,0003H,3465H
- BUF DB 100 DUP(?)
- STRING1 DB 'Original array:',0DH,0AH,'
- STRING2 DB 'The sorted array:',0DH,0AH,'
- DATA ENDS
- STACK SEGMENT STACK 'STACK'
- DW 100 DUP(?)
- TOP LABEL WORD
- STACK ENDS
- CODE SEGMENT
- ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
- START:
- MOV AX,DATA
- MOV DS,AX
- MOV ES,AX
- MOV AX,STACK
- MOV SS,AX
- LEA DX,STRING1 ;显示人机交互提示
- MOV AH,09H
- INT 21H
- MOV CX,NUM
- LEA SI,VAR1
- L1:
- MOV AX,[SI]
- INC SI
- INC SI
- CALL DISPAX ;显示未排序之前的数组
- CALL DISPCR ;回车换行
- LOOP L1
- CALL DISPCR
- MOV CX,NUM
- DEC CX
- LEA SI,VAR1
- ADD SI,CX
- ADD SI,CX ;SI指向最后一个数据
- LP1:
- PUSH CX
- PUSH SI
- LP2:
- MOV AX,[SI] ;排序
- CMP AX,[SI-2]
- JBE NOXCHG
- XCHG AX,[SI-2] ;交换操作
- MOV [SI],AX
- NOXCHG:
- DEC SI ;不需交换时继续比较
- DEC SI
- LOOP LP2
- POP SI
- POP CX
- LOOP LP1
- LEA DX,STRING2 ;显示输出提示
- MOV AH,09H
- INT 21H
- MOV CX,NUM ;显示排好序后数据
- LEA SI,VAR1
- L2:
- MOV AX,[SI]
- INC SI
- INC SI
- CALL DISPAX
- CALL DISPCR
- LOOP L2
- MOV AH,4CH
- INT 21H
- DISPAL PROC NEAR
- ;功能:显示AL内容子程序
- ;入口参数:AL
- ;出口参数:无
- PUSH AX
- PUSH CX
- PUSH DX
- PUSH AX
- MOV CL,4 ;处理高位十六进制数
- SHR AL,CL
- CALL TRANS16TOACSII
- MOV AH,02H
- MOV DL,AL
- INT 21H ;显示一位字符
- POP AX
- AND AX,0FH ;处理低位十六进制数
- CALL TRANS16TOACSII
- MOV AH,02H
- MOV DL,AL
- INT 21H
- POP DX
- POP CX
- POP AX
- RET
- DISPAL ENDP
- TRANS16TOACSII PROC NEAR
- ;功能:十六进制数转换为ASCII码
- ;入口参数:AL
- ;出口参数:无
- CMP AL,10
- JNGE TRAN1
- ADD AL,7
- TRAN1:
- ADD AL,30H
- RET
- TRANS16TOACSII ENDP
- DISPAX PROC
- ;功能:AX内容子程序
- ;入口参数:AX
- ;出口参数:无
- XCHG AL,AH
- CALL DISPAL
- XCHG AH,AL
- CALL DISPAL
- RET
- DISPAX ENDP
- DISPCR PROC NEAR
- ;功能:回车换行子程序
- ;入口参数:AX
- ;出口参数:无
- PUSH AX
- PUSH DX
- MOV AH,2
- MOV DL,0AH
- INT 21H
- MOV AH,2
- MOV DL,0DH
- INT 21H
- POP DX
- POP AX
- RET
- DISPCR ENDP
- CODE ENDS
- END START
复制代码
|
-
-
-
sort.doc
33.5 KB, 下载次数: 6, 下载积分: 黑币 -5
-
-
sort.zip
1016 Bytes, 下载次数: 4, 下载积分: 黑币 -5
|