我已经开始了一个介绍性的装配课程,并且有一个分配来创建说明以执行以下操作。
T = H&安培;〜Ĵ
与此相关的C代码如下:
void main(void)
{
ddrh = 0x00;
ddrj = 0x00;
ddrt = 0xff;
while(1)
{
ptt = (~ptj)&pth;
}
}
DDR是用于设置i / o的方向寄存器。
PT是端口。
非常感谢任何建议或解决方案。
*使用MC9S12C32更新汇编代码
DDRH equ $0262
DDRJ equ $026A
DDRT equ $0242
PTT equ $0240
PTH equ $0260
PTJ equ $0268
org $4000
main ldaa #$00
staa DDRH ;Setting direction register H for all inputs
ldaa #$00
staa DDRJ ;Setting direction register J for all inputs.
ldaa #$FF
staa DDRT ;Setting direction register T for all outputs.
loop ldaa PTH ;load port h to register a
ldab PTJ ;load port j to register b
comb ;compliment register b contents for ~J
andb PTH ;AND logical register b and port H
stab PTT :output register b to port T
bra loop
org $FFFE
fdb main
代码集合没有错误,但是当我运行它来模拟处理器时,我收到以下错误代码:
"使用EAR W 0x0262 0x00存储到I / O端口0x4002 staa $ 0262写入未实现的I / O端口0x0262。"
是否有人能够检查这是什么问题,并可能提供严厉的建议来解决这个问题?
UPDATE!发现我的问题,在汇编程序中选择了错误的处理器。必须使用MC9S12DP512而不是MC9S12C32。
答案 0 :(得分:0)
因为 - 据我所知 - 这是你课程的作业,我不会给你太多的帮助。你应该自己做功课,否则你就不会为考试做好准备了。
您应该首先分析C程序正在做什么。因为你没有做C课程,我可以在这里给你一些帮助:
现在您必须在汇编程序中执行所有这些步骤。我相信你知道课程中所有必要的指示。
顺便说一下:你可能想写“飞思卡尔”,而不是“自由式”