匯編程序成績排序的實現(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)換(思路詳解)
本文列出了十六進制轉(zhuǎn)二進制、十進制、ASCII碼及大小寫字母轉(zhuǎn)換的代碼,對匯編語言系列之實現(xiàn)各種碼制的轉(zhuǎn)換問題感興趣的朋友跟隨小編一起看看吧2021-11-11