我需要啓用msm800嵌入式計算機的硬件看門狗。在msm800中啓用硬件看門狗
不幸的是,我幾乎不知道使用匯編語言的任何內容。
這是該設備的文件說:
功能:看門狗
編號:EBH
說明:
啓用閃光燈和禁用 看門狗。加電後,看門狗 始終被禁用。一旦看門狗 已被啓用,用戶應用程序 必須執行選通每個 800ms的至少,否則看門狗執行 一個硬件復位
輸入值:
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;
}
這是錯的 - 運行在分段錯誤的結果,我有寄存器中的值正確,但不知道如何實際運行該功能。
任何幫助?
我從來沒有使用msm800(我甚至不知道它存在) 但你是否確實需要在字符串中編寫asm命令?在我使用的asm系統上,我必須直接寫入,而不是寫入字符串。 – nuriaion 2009-10-06 06:48:00
我也從來沒有見過像這樣寫的asm指令。 – blak3r 2009-10-08 07:13:32