📄 ex6-11.asm
字号:
;人名排序,包含EX6-11R,EX6-11S,EX6-11SO,EX6-11D;分别汇编,再连接成一个可执行文件
public namepar,maxnlen,namelen,namefld,crlf,endaddr,messg1,messg2,namectr,nametab,namesav,swapped
extrn b10read:far,d10stor:far,g10sort:far,k10disp:far
SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS
DSEG SEGMENT
namepar label byte
maxnlen db 21
namelen db ?
namefld db 21 dup(?)
crlf db 13,10,'$'
endaddr dw ?
messg1 db 'name?$'
messg2 db 'sorted names:',13,10,'$'
namectr db 0
nametab db 30 dup(20 dup(' '))
namesav db 20 dup(?),13,10,'$'
swapped db 0
;数据段:在此处添加程序所需的数据
DSEG ENDS
ESEG SEGMENT
;附加段:在此处添加程序所需的数据
ESEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG
MAIN PROC far ;主程序入口
mov ax, dseg
mov ds, ax
mov es, ax
cld
lea di,nametab
a20loop:
call b10read
cmp namelen,0
jz a30
cmp namectr,30
je a30
call d10stor
jmp a20loop
a30:
cmp namectr,1
jbe a40
call g10sort
call k10disp
a40:
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -