⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01.asm

📁 汇编;每隔10ms响铃一下
💻 ASM
字号:
.model   small
.stack   40h
.data
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(' '))         ;name table
namesav    db    20 dup(?),13,10,'$'
swapped    db    0
.code
begin      proc  far
mov    ax,@data
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
begin  endp
b10read  proc   near
mov    ah,09
lea    dx,messg1
int    21h
mov    ah,0ah
lea    dx,namepar
int    21h
mov    ah,09
lea    dx,crlf
int    21h
mov    bh,0
mov    bl,namelen
mov    cx,21
sub    cx,bx
b20:
mov    namefld[bx],20h
inc    bx
loop   b20
ret
b10read   endp
d10stor   proc   near
inc    namectr
cld
lea    si,namefld
mov    cx,10
rep    movsw
ret
d10stor   endp
g10sort    proc   near
sub    di,40
mov    endaddr,di
g20:
mov    swapped,0
lea    si,nametab
g30:
mov    cx,20
mov    di,si
add    di,20
mov    ax,di
mov    bx,si
repe   cmpsb
jbe    g40
call   h10xchg
g40:
mov    si,ax
cmp    si,endaddr
jbe    g30
cmp    swapped,0
jnz    g20
ret
g10sort    endp
h10xchg    proc    near
mov    cx,10
lea    di,namesav
mov    si,bx
rep    movsw
mov    cx,10
mov    di,bx
rep    movsw
mov    cx,10
lea    si,namesav
rep    movsw
mov    swapped,1
ret
h10xchg    endp
k10disp    proc    near
mov    ah,09
lea    dx,messg2
int    21h
lea    si,nametab
k20:
lea    di,namesav
mov    cx,10
rep    movsw
mov    ah,9
lea    dx,namesav
int    21h
dec    namectr
jnz    k20
ret
k10disp    endp
end     begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -