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

📄 sy10-0832-2.asm

📁 汇编语言接口技术硬件实验中
💻 ASM
字号:
         ; IO  EQU       0C400H-0280H
      ;IO_DAC  EQU       IO+0290H

        DATA  SEGMENT
         SIN  DB        1,2,4,7,12,17,24,31,40,50,60,71,82,95,107,120,132,145,157
              DB        170,181,193,203,213,222,230,237,243,248,252,254,255,255,254
              DB        251,247,242,236,229,221,212,202,191,179,168,155,143,130,117
              DB        105,92,80, 69,58,48,38, 30,22,16,11,7,4,2,1
        OVER  DB        'Transfer Over?(Y/N)','$'
      CHOOSE  DB        'Input(1-3)(ESC->out)1.锯齿波 2.三角波 3.正弦波 :',10,13,'$'
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA

      START:  MOV       AX,DATA
              MOV       DS,AX

    RESTART:  MOV       DX,OFFSET CHOOSE        ;显示选择语句
              MOV       AH,09H
              INT       21H

              MOV       AH,01H      ;AL=
              INT       21H

              CMP       AL,1BH      ;若为ESC,则跳到EXIT
              JZ        EXIT

              CMP       AL,31H      ;若输入1,跳到W1
              JZ        W1

              CMP       AL,32H      ;若输入2,跳到W2
              JZ        W2
      
              CMP       AL,33H      ;若输入3,跳到W3
              JZ        W3

              JMP       EXIT

         W1:  MOV       AL,0        ;产生锯齿波
         L1:  MOV       DX,0C410H
              OUT       DX,AL
              INC       AL
              CMP       AL,0FFH
              JNZ       L1
              MOV       AH,0BH      ;若键盘有输入,则转到RESTART
              INT       21H
              CMP       AL,0FFH
              JZ        RESTART
              JMP       L1          ;循环输出锯齿波
       
       
         W2:  MOV       AL,0        ;产生三角波
         L2:  MOV       DX,0C410H
              OUT       DX,AL
              INC       AL
              CMP       AL,0FFH
              JNZ       L2
        L22:  OUT       DX,AL
              DEC       AL
              CMP       AL,0
              JNZ       L22
              MOV       AH,0BH      ;若键盘有输入,则转到RESTART
              INT       21H
              CMP       AL,0FFH
              JZ        RESTART
              JMP       L2          ;循环输出三角波

         W3:  MOV       BX,OFFSET SIN           ;输出正弦波
         L3:  MOV       SI,0
        L33:  MOV       DX,0C410H
              MOV       AL,[BX+SI]
              OUT       DX,AL
              INC       SI
              CMP       SI,65
              JNZ       L33
              MOV       AH,0BH      ;若键盘有输入,则转到RESTART
              INT       21H
              CMP       AL,0FFH
              JZ        RESTART
              JMP       L3          ;循环输出正弦波

       EXIT:  MOV       DX,OFFSET OVER
              MOV       AH,09H
              INT       21H
              MOV       AH,01H
              INT       21H
              CMP       AL,'N'
              JZ        RESTART
              MOV       AH,4CH
              INT       21H

        CODE  ENDS
              END       START

⌨️ 快捷键说明

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