68.asm

来自「本书为清华大学第二版汇编语言的课后题详解」· 汇编 代码 · 共 81 行

ASM
81
字号
;6_8.asm

;**********************************************************************
        .model small
        .stack 100h
;**********************************************************************
        .data
table   label byte
max     db 16
act     db 0
char    db 16 dup(?)
;************************************************************************
        .code
;-----------------------------------------------------------------------
main    proc far
start:
        push ds
        sub  ax,ax
        push ax
        mov  ax,@data
        mov  ds,ax
        lea  dx,table
        mov  ah,0ah
        int  21h
        call crlf
        mov  cl,act
        mov  si,0
loop1:  mov  dl,char[si]
        mov  ah,2
        int  21h
        mov  dl,20h
        mov  ah,2
        int  21h
        call count
        add  bl,30h
        cmp  bl,3ah
        jl   printit
        add  bl,07h
printit:mov  dl,bl
        mov  ah,2
        int  21h
        call crlf
        inc  si
        dec  cl
        jnz  loop1
        ret
main    endp
;-------------------------------------------------------------------------
count   proc near
        push ax
        push cx
        push si
        mov  al,char[si]
        mov  cl,act
        mov  bl,0
        mov  si,0
loop2:  cmp  al,char[si]
        jnz  next
        inc  bl
next:   inc  si
        dec  cl
        jnz  loop2
        pop  si
        pop  cx
        pop  ax
        ret
count   endp
;-------------------------------------------------------------------------
crlf    proc near
        mov  dl,0dh
        mov  ah,2
        int  21h
        mov  dl,0ah
        mov  ah,2
        int  21h
        ret
crlf    endp
;--------------------------------------------------------------------------
;*************************************************************************
        end  start

⌨️ 快捷键说明

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