匯編程序成績排序的實現(xiàn)
更新時間:2020年02月09日 15:42:36 作者:迂者-賀利堅
這篇文章主要介紹了匯編程序成績排序的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
匯編程序 成績排序的實現(xiàn)
【任務(wù)】
在數(shù)據(jù)區(qū),給出了學(xué)生人數(shù)及匯編語言課程的成績,請將成績排序并保存在原數(shù)據(jù)區(qū)。
下面給出部分代碼,要求完成排序子程序。
程序中給出的數(shù)據(jù)段,包括20位同學(xué)的成績,每名同學(xué)的數(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: ;排序的內(nèi)層循環(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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
8086匯編開發(fā)環(huán)境搭建和Debug模式介紹(圖文詳解)
這篇文章主要介紹了8086匯編開發(fā)環(huán)境搭建和Debug模式介紹,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
匯編語言系列之匯編實現(xiàn)各種碼制的轉(zhuǎn)換(思路詳解)
本文列出了十六進(jìn)制轉(zhuǎn)二進(jìn)制、十進(jìn)制、ASCII碼及大小寫字母轉(zhuǎn)換的代碼,對匯編語言系列之實現(xiàn)各種碼制的轉(zhuǎn)換問題感興趣的朋友跟隨小編一起看看吧2021-11-11

