鱼C论坛

 找回密码
 立即注册
查看: 2959|回复: 3

各位大神求救求救,明天就要交

[复制链接]
发表于 2016-12-19 13:18:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编一段中断处理程序,在主程序运行的过程中,每隔10秒钟响铃一次,同时在屏幕上显示“The bell is ring!”。
DATA        SEGMENT
COUNT        DW   1
MESS        DB   'The bell is ring!', 0DH,0AH,'$'
DATA        ENDS
CODE        SEGMENT
        ASSUME  CS:CODE, DS:DATA, ES: DATA
MAIN        PROC  FAR
START:   PUSH        DS
        SUB        AX,AX
PUSH        AX
        MOV        AX,DATA
        MOV        DS,AX
        MOV        AL,1CH                ;取中断向量
        MOV        AH,35H
        INT        21H
PUSH        ES                ;存原中断向量段址
PUSH        BX            ;存原中断向量偏移量
PUSH        DS
MOV        DX,OFFSET ring;新偏移量送DX
MOV        AX, SEG  ring
MOV        DS,AX                ;新段址送DS
 MOV        AL, 1CH 
MOV        AH, 25H
INT           21H                ;写入新的中断向量
POP           DS
IN           AL,21H                ;读取中断屏蔽字
AND        AL, 11111110B        ;允许定时器中断
OUT        21H, AL
STI                        ;开中断
MOV        DI, 2000
DELAY:MOV   SI,3000                ;延时 
DELAY1:DEC        SI
       JNZ  DELAY1
                  DEC  DI
                  JNZ  DELAY
                  POP  DX        ;恢复原中断向量
                  POP  DS
                  MOV  AL,1CH
                  MOV  AH,25H
                  INT  21H
RET
MAIN   ENDP
ring:PROC NEAR
        PUSH        DS        
        PUSH        AX
        PUSH        CX
        PUSH        DX
        MOV        AX,DATA
        MOV        DS,AX
STI                ;开中断
        DEC        COUNT        ;计秒值
        JNZ        EXIT
        MOV        DX, OFFSET  MESS
        MOV        AH,09H
        INT        21H
        MOV        DX,100
        IN        AL,61H
        AND        AL,0FCH
SOUND:   XOR        AL,02
        OUT        61H,AL;扬声器发声
        MOV        CX,140H
WAIT1:LOOP        WAIT1;延时等待
        DEC        DX
        JNE        SOUND
        MOV        COUNT,182
EXIT: CLI        ;关中断
        POP        DX
        POP        CX
        POP        AX
        POP        DS
        IRET        ;中断返回
ring ENDP
CODE ENDS
       END        START

调试结果

调试结果

错误的行数

错误的行数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-19 13:19:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-21 21:29:21 | 显示全部楼层
43行:ring后面多了:号

其实,我看不懂你的程序,只是对比上面MAIN PROC FAR和ENDP的表示方式得出的结论……

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-21 21:33:57 | 显示全部楼层
我…………论坛卡了下就连发了…………
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 06:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表