510.asm

来自「汇编语言课后习题答案」· 汇编 代码 · 共 64 行

ASM
64
字号
;510.asm

datasg   segment
  eng    db  'THE SUN RISES IN THE EAST.THE CHILDREN BASK IN THE SUN.SUNSHINE,SUN.$'
  count  db  'SUN:',4 dup(?),13,10,'$'
datasg   ends

codesg   segment
main     proc    far
         assume  cs:codesg, ds:datasg
start:
         push  ds
         sub   ax,ax
         push  ax

         mov   ax,datasg
         mov   ds,ax

         lea   bx,eng
         mov   ax,0

find:    cmp  byte ptr [bx],'$'
         jz    exit

         cmp   byte ptr [bx],'S'
         jnz   next

         cmp   byte ptr [bx+1],'U'
         jnz   next

         cmp   byte ptr [bx+2],'N'
         jnz   next

         cmp   byte ptr [bx+3],41h
         jb    increase
         cmp   byte ptr [bx+3],5ah
         ja    increase
         jmp   short next
increase:inc   ax
next:    inc   bx
         jmp   short  find

exit:    mov   ch,4
         mov   si,4
rotate:  mov   cl,4
         rol   ax,cl
         mov   bl,al
         and   bl,0fh
         add   bl,30h
         cmp   bl,3ah
         jl    printit
         add   bl,07h
printit: mov   count[si],bl
         inc   si
         dec   ch
         jnz   rotate
         lea   dx,count
         mov   ah,09
         int   21h
         ret
main     endp
codesg   ends
         end   start

⌨️ 快捷键说明

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