month.asm

来自「这是一个显示月份的汇编源代码」· 汇编 代码 · 共 66 行

ASM
66
字号
data segment para 'DATA'  ;定义数据段
three DB 3
mess DB 'Month=?',0DH,0AH
monin label byte
     max DB 3
     act DB ?
     mon  DB  3dup(?)
alfmon DB '???',0DH,0AH,'&'
montab DB 'JAN','FEB','MAR','APR','MAY','JUN'
       DB 'JUL','ACG','SEP','OCT','NOV','DEC'
data ends                ;数据段结束
;:::::::::::::::::::::::::::::::::::::::::::::
code segment para 'code' ;定义代码段
     assume CS:CODE,DS:DATA,ES:DATA ;分配寄存器
main proc far
     push DS
     sub AX,AX
     push AX
     move AX,DATA
     move DS,AX
     move ES,AX
;输入提示
start: lea DX,mess
       move AH,9
       int 21H
       lea DX,monin
       mov AH,0AH
       int 21H
       mov DL,0DH
       mov AH,02H
       int 21H
       mov DL,0AH
       mov AH,02H
       int 21H
       cmp act,0
       je  exit
       mov BH,30H
       cmp act,2
       je two
       mov BL,mon	
       jmp conv
two: mov BL,mon+1
     mov BH,mon
conv:  xor BX,3030H
       mov AL,10
       mul BH
       add AL,BL
       cmp AL,13
       jnc exit
loc:  lea SI,montab
      dec AL
      mul three
      add SI,AX
      mov CX,3
      cld
      lea DI,alfmon
      rep movsb
      lea DX,alfmon
      mov AH,09H
      int 21H
      jmp start
exit: ret
main  endp
code ends
     end    main

⌨️ 快捷键说明

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