我需要启用 msm800 嵌入式计算机的硬件看门狗。
不幸的是,我对使用汇编语言几乎一无所知。
这是设备文档所说的:
功能:看门狗
编号:EBh
描述:
启用闪光灯并禁用看门狗。上电后,看门狗始终处于禁用状态。启用看门狗后,用户应用程序必须至少每 800 毫秒执行一次选通,否则看门狗将执行硬件复位
输入值:
AH:78h DLAG Int15 函数
AL:EBh 功能请求
BL:00h 禁用
BL: 01h 启用
BL:FFh 频闪
01h-FFh 启用看门狗/重新触发
BH:00h = BL -> 秒数。/ 01h = BL -> 最小数量。
输出值:AL 01h 发生看门狗定时器超时
这就是我想出的:
#include <stdio.h>
int main() {
asm(
"movb $0x78, %ah\n\t"
"movb $0xEB, %al\n\t"
"movb $0x01, %bl\n\t"
"movb $0x00, %bh\n\t"
"int $0x80"
);
return 0;
}
虽然这是错误的 - 运行导致分段错误,我在寄存器中有正确的值,但不知道如何实际运行该函数。
有什么帮助吗?