Em có một đoạn code bằng C muốn nhúng một đoạn asm vào trong mà không được .Sau đây là một thí dụ .Em dịch mái không được. Mong các cao thủ chỉ cho em cái options for file để có thể dịch được đoạn mã C có chưa ASM
#include<at89x52.h>
void uart_init(void) // Set UART Baud Rate to 9600 bps
{
#pragma asm
anl PCON,#0x7F // Clear SMOD of PCON, No Double Baud Rate
anl TMOD,#0xAF // Clear C/T, M0 for Timer1 of TMOD
orl TMOD,#0x20 // Set M1 for Timer1 of TMOD
// Set Timer1 to Mode 2 (8-bit auto reload) for Baud Rate Generation
mov TH1,#0xFD // Set Baud Rate to 9600 bps
clr SM0 // Clear SM0 of SCON
setb SM1 // Set SM1 of SCON
// Set UART to Mode 1 (8-bit UART)
setb REN // Set REN of SCON to Enable UART Receive
setb TR1 // Set TR1 of TCON to Start Timer1
setb TI // Set TI of SCON to Get Ready to Send
clr RI // Clear RI of SCON to Get Ready to Receive
#pragma endasm
}
void main()
{
while(1)
{
uart_init();
}
}
#include<at89x52.h>
void uart_init(void) // Set UART Baud Rate to 9600 bps
{
#pragma asm
anl PCON,#0x7F // Clear SMOD of PCON, No Double Baud Rate
anl TMOD,#0xAF // Clear C/T, M0 for Timer1 of TMOD
orl TMOD,#0x20 // Set M1 for Timer1 of TMOD
// Set Timer1 to Mode 2 (8-bit auto reload) for Baud Rate Generation
mov TH1,#0xFD // Set Baud Rate to 9600 bps
clr SM0 // Clear SM0 of SCON
setb SM1 // Set SM1 of SCON
// Set UART to Mode 1 (8-bit UART)
setb REN // Set REN of SCON to Enable UART Receive
setb TR1 // Set TR1 of TCON to Start Timer1
setb TI // Set TI of SCON to Get Ready to Send
clr RI // Clear RI of SCON to Get Ready to Receive
#pragma endasm
}
void main()
{
while(1)
{
uart_init();
}
}
Comment