匯編程序成績排序的實現(xiàn)
更新時間:2020年02月09日 15:42:36 作者:迂者-賀利堅
這篇文章主要介紹了匯編程序成績排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
匯編程序 成績排序的實現(xiàn)
【任務】
在數(shù)據(jù)區(qū),給出了學生人數(shù)及匯編語言課程的成績,請將成績排序并保存在原數(shù)據(jù)區(qū)。
下面給出部分代碼,要求完成排序子程序。
程序中給出的數(shù)據(jù)段,包括20位同學的成績,每名同學的數(shù)據(jù)占1字節(jié)。
參考程序段:
assume cs:cseg, ds:dseg, ss:sseg
sseg segment stack
dw 100H dup (?)
sseg ends
dseg segment
db 20
db 98,61,57,82,89,73,61,58,53,54
db 84,78,70,64,84,63,76,84,83,86
dseg ends
cseg segment
start: mov ax, dseg
mov ds, ax
mov cl, ds:[0]
mov ch, 0 ;cx中存儲要排序數(shù)的個數(shù)
mov bx, 1 ;要排序數(shù)的起始偏移地址
call sort
mov ax, 4c00h
int 21h
;子程序名:sort
;功 能:對從(DS):(bx)開始的(cx)個字節(jié)排序
;入口參數(shù):(DS):(BX)保存數(shù)據(jù)的起始地址
; (cx)中是要排序的數(shù)據(jù)個數(shù)
;出口參數(shù):無
sort proc
;這兒寫子程序
sort endp
cseg ends
end start
【參考解答】
assume cs:cseg, ds:dseg, ss:sseg
sseg segment stack
dw 100H dup (?)
sseg ends
dseg segment
db 20
db 98,61,57,82,89,73,61,58,53,54
db 84,78,70,64,84,63,76,84,83,86
dseg ends
cseg segment
start: mov ax, dseg
mov ds, ax
mov cl, ds:[0]
mov ch, 0 ;cx中存儲要排序數(shù)的個數(shù)
mov bx, 1 ;要排序數(shù)的起始偏移地址
call sort
mov ax, 4c00h
int 21h
sort proc
push si
push ax
dec cx ;外層循環(huán)次數(shù)為數(shù)據(jù)個數(shù)減1
c1: ;排序的外層循環(huán)
push cx
mov si, bx
c2: ;排序的內層循環(huán)
mov al, [si]
cmp al, [si+1]
jbe noswap
mov ah, [si+1]
mov [si+1], al
mov [si], ah
noswap: inc si
loop c2
pop cx
loop c1
pop ax
pop si
ret
sort endp
cseg ends
end start
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
8086匯編開發(fā)環(huán)境搭建和Debug模式介紹(圖文詳解)
這篇文章主要介紹了8086匯編開發(fā)環(huán)境搭建和Debug模式介紹,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
匯編語言系列之匯編實現(xiàn)各種碼制的轉換(思路詳解)
本文列出了十六進制轉二進制、十進制、ASCII碼及大小寫字母轉換的代碼,對匯編語言系列之實現(xiàn)各種碼制的轉換問題感興趣的朋友跟隨小編一起看看吧2021-11-11

