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

📄 adda.asm

📁 this a program about AD/DA CHANG
💻 ASM
字号:
;       SY8-3.ASM (D/A、A/D联调实验)

        ADCS  EQU       298H
      ADPORT  EQU       298H
        DACS  EQU       29CH

        DATA  SEGMENT
     BUFFER1  DB        640 DUP(0)
     BUFFER2  DB        640 DUP(0)
          P1  DW        8FH
          P2  DB        0FFH
        FLAG  DB        0
       MESS1  DB        '锯齿波----按 1',0DH,0AH
              DB        '三角波----按 2',0DH,0AH
              DB        '方  波----按 3',0DH,0AH
              DB        '正弦波----按 4',0DH,0AH
              DB        '退  出----按 5',0DH,0AH,'$'
       MESS2  DB        '按下键无效,请继续选择',0DH,0AH,'$'
       MESS3  DB        '按任意键退回主菜单',0DH,0AH,'$'
     SINBUF1  DB        080H,08CH,098H,0A5H,0B0H,0BCH,0C7H,0D1H
              DB        0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH
              DB        0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH
              DB        0D1H,0C7H,0BCH,0B0H,0A5H,098H,08CH,080H
              DB        7FH, 73H, 67H, 5AH, 4FH, 43H, 38H, 2EH
              DB        25H, 1DH, 15H, 0FH, 09H, 05H, 02H, 00H
              DB        00H, 02H, 05H, 09H, 0FH, 15H, 1DH, 25H
              DB        2EH, 38H, 43H, 4FH, 5AH, 67H, 73H, 7FH

     SINBUF2  DB        128D,135D,141D,148D,155D,161D,167D,174D,180D,186D
              DB        192D,198D,203D,209D,214D,219D,223D,227D,231D,235D
              DB        239D,242D,245D,248D,250D,252D,253D,254D,255D
              DB        255D,254D,253D,252D,250D,248D,245D,242D,239D
              DB        235D,231D,227D,223D,219D,214D,209D,203D,198D,192D
              DB        186D,180D,174D,167D,161D,155D,148D,141D,135D,128D
              DB        121D,115D,108D,101D, 95D, 89D, 82D, 76D, 70D
              DB        64D, 58D, 53D, 47D, 42D, 37D, 33D, 29D, 25D, 21D
              DB        17D, 14D, 11D, 08D, 06D, 04D, 03D, 02D, 01D, 00D
              DB        00D, 01D, 02D, 03D, 04D, 06D, 08D, 11D, 14D, 17D
              DB        21D, 25D, 29D, 33D, 37D, 42D, 47D, 53D, 58D, 64D
              DB        70D, 76D, 82D, 89D, 95D,101D,108D,115D,121D

              DB        127D,126D,125D,124D,122D,120D,117D,114D,111D
              DB        107D,103D, 99D, 95D, 91D, 86D, 81D, 75D, 70D, 64D
              DB        58D, 52D, 46D, 39D, 33D, 27D, 20D, 13D, 07D, 00D
              DB        00D, 07D, 13D, 20D, 27D, 33D, 39D, 46D, 52D, 58D
              DB        64D, 70D, 75D, 81D, 86D, 91D, 95D, 99D,104D,107D
              DB        111D,114D,117D,120D,122D,124D,125D,126D,127D
         NUM  DW        ?
        DATA  ENDS

        STAC  SEGMENT   PARA STACK 'STACK'
         STA  DB        20 DUP(?)
         TOP  EQU       LENGTH STA
        STAC  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA,SS:STAC,ES:DATA
      START:  MOV       AX,DATA
              MOV       DS,AX
              MOV       AX,STAC
              MOV       SS,AX
              MOV       AX,TOP
              MOV       SP,AX

         BG:  CALL      CRTRST
              LEA       DX,MESS1
              MOV       AH,09H
              INT       21H
              MOV       AH,08H
              INT       21H
              PUSH      AX
              LEA       DX,MESS3
              MOV       AH,09H
              INT       21H
              POP       AX
              MOV       AH,AL
              CMP       AL,'1'
              JZ        JCB
              MOV       AL,AH
              CMP       AL,'2'
              JZ        SJB
              MOV       AL,AH
              CMP       AL,'3'
              JZ        FB1
              MOV       AL,AH
              CMP       AL,'4'
              JZ        ZXB1
              MOV       AL,AH
              CMP       AL,'5'
              JNZ       WX
              JMP       QUIT
       ZXB1:  JMP       ZXB
         WX:  LEA       DX,MESS2
              MOV       AH,09H
              INT       21H
              JMP       BG
        FB1:  JMP       FB

              JCB:      CALL    CRTSET
              MOV       AX,00H
              MOV       NUM,AX
              MOV       DX,DACS
              MOV       AL,00H
         BB:  OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              CALL      ADCDIS
              ADD       AL,01H
              PUSH      AX
              PUSH      DX
              MOV       DL,0FFH
              MOV       AH,06H
              INT       21H
              JNZ       BG
              POP       DX
              POP       AX
              JMP       BB

        SJB:  CALL      CRTSET
              MOV       AX,00H
              MOV       NUM,AX
              MOV       DX,DACS
              MOV       AL,00H
         EE:  OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              CALL      ADCDIS
              ADD       AL,01H
              CMP       AL,0FFH
              JNE       EE
         FF:  OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              CALL      ADCDIS
              SUB       AL,01H
              CMP       AL,00H
              JNE       FF
              PUSH      AX
              PUSH      DX
              MOV       DL,0FFH
              MOV       AH,06H
              INT       21H
              JNZ       BG2
              POP       DX
              POP       AX
              JMP       EE

        BG2:  JMP       BG

         FB:  CALL      CRTSET
              MOV       AX,00H
              MOV       NUM,AX
              MOV       DX,DACS
              MOV       AX,0000H
         HH:  OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              PUSH      AX
              CALL      ADCDIS
              POP       AX
              ADD       AH,01H
              CMP       AH,00H
              JNE       HH
              MOV       AL,0FFH
         II:  OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              PUSH      AX
              CALL      ADCDIS
              POP       AX
              ADD       AH,01H
              CMP       AH,00H
              JNE       II
              PUSH      AX
              PUSH      DX
              MOV       DL,0FFH
              MOV       AH,06H
              INT       21H
              JNZ       BG1
              POP       DX
              POP       AX
              MOV       AL,00H
              JMP       HH

        BG1:  JMP       BG

        ZXB:  CALL      CRTSET
              MOV       AX,00H
              MOV       NUM,AX
              MOV       DX,DACS
              JJ:       LEA     SI,SINBUF2
              MOV       BL,116
         KK:  MOV       AL,[SI]
              OUT       DX,AL
              INC       DX
              OUT       DX,AL
              DEC       DX
              CALL      ADCDIS
              INC       SI
              DEC       BL
              JNZ       KK
              PUSH      AX
              PUSH      DX
              MOV       DL,0FFH
              MOV       AH,06H
              INT       21H
              JNZ       BG3
              POP       DX
              POP       AX
              JMP       JJ

        BG3:  JMP       BG

       QUIT:  MOV       AX,4C00H
              INT       21H

      CRTSET  PROC      NEAR
              PUSH      AX
              MOV       AH,0
              MOV       AL,06H
              INT       10H
              POP       AX
              RET
      CRTSET  ENDP

      ADCDIS  PROC      NEAR
        S12:  PUSH      DX
              PUSH      CX
              PUSH      AX
              PUSH      BX
              MOV       DX,ADPORT
              OUT       DX,AL
              CALL      DELAY1
              IN        AL,DX

              XOR       AH,AH
              MOV       DL,160
              MUL       DL
              MOV       DL,255
              DIV       DL
              XOR       AH,AH
              MOV       DX,AX
              MOV       AX,160
              SUB       AX,DX
              ADD       AX,20
              MOV       DX,AX
              MOV       AX,NUM
              MOV       BX,AX
              MOV       CX,BX
              MOV       AH,0CH
              MOV       AL,1
              INT       10H
              INC       BX
              MOV       NUM,BX
              CMP       BX,640
              JNZ       DISEND
              MOV       BX,00H
              MOV       NUM,BX
              CALL      CRTRST
              CALL      CRTSET
     DISEND:  POP       BX
              POP       AX
              POP       CX
              POP       DX
              RET
      ADCDIS  ENDP

      CRTRST  PROC      NEAR
              PUSH      AX
              MOV       AH,0
              MOV       AL,3
              INT       10H
              POP       AX
              RET
      CRTRST  ENDP

      DELAY1  PROC      NEAR
              PUSH      CX
              MOV       CX,04000H
              LOOP      $
              POP       CX
              RET
      DELAY1  ENDP
      DELAY2  PROC      NEAR
              PUSH      AX
              PUSH      CX
              MOV       CX,10H
       DL21:  CALL      DELAY1
              LOOP      DL21
              POP       CX
              POP       AX
              RET
      DELAY2  ENDP

        CODE  ENDS
              END       START

⌨️ 快捷键说明

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