首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pdp-11上的时钟

pdp-11上的时钟
EN

Stack Overflow用户
提问于 2010-06-22 03:03:57
回答 3查看 987关注 0票数 2

我对我写的简单程序有点困惑,你能解释一下为什么它只打印了一个字符就退出了吗,我预计它会每5秒打印一次字符,提前谢谢

代码语言:javascript
复制
tks = 177560
tkb = 177562
tps = 177564
tpb = 177566
lcs = 177546
. = torg + 2000

main:   mov #main, sp

        mov #clock, @#100  ; vector interrupt of the clock 100-102
        mov #300, @#102    ; 

        mov #100, @#lcs    ; here I enable interrupt-enable of the clock

prog:   clr r0             ; here endless loop
        beq prog
        halt

clock:  inc count
        cmp count, timeout
        bne clk_end
        clr count
        mov #'*, @#tpb
clk_end:rti

. = torg + 3000
timeout: .word 300000
count: .word 0
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-22 04:54:03

这肯定是一个与模拟器相关的问题,因为我试图运行你的代码,它工作得很好!

你碰巧是理工学院的学生吗?

票数 2
EN

Stack Overflow用户

发布于 2010-06-22 04:27:31

我不熟悉PDP-11,但我为其他处理器写过中断代码。在其他处理器上,如果中断例程未保存标志寄存器,则可能会发生您所描述的行为。如果在两条指令clr r0beq prog之间发生中断,并且中断处理程序清除了标志寄存器中的相等位,则会导致您所描述的行为。

同样,我不熟悉PDP-11汇编程序,但您可以尝试在进入中断例程时保存标志寄存器的状态,并在rti指令之前恢复它。可能使用PDP-11等效于80x86 push指令。

票数 0
EN

Stack Overflow用户

发布于 2010-06-22 20:47:01

我认为时钟的模式不应该是0而是1,加载110而不是100。参见KW11-P可编程实时时钟手册。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3087618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档