/* */
/* 8253 MODE_4 APPLICATION */
/* NOTE : SET 8253 MODE OUT=HIGH */
/* START COUNT OUT=HIGH */
/* COUNT END OUT=LOW(1 CLK) OUT=HIGH*/
/* 8253 MODE_4 IS SOFTWAVE TIGGERED STROBE */
/***********************************************/
#include #include #define COUNT_0 0x308
#define COUNT_1 0x309
#define COUNT_2 0x30A
#define CONTROL_8253 0x30B
main()
{
outportb(CONTROL_8253,0x38); /* SET 8253 COUNT_0 MODE_4 */
outportb(COUNT_0,0X05); /* WRITE LSB COUNT=5 */
outportb(COUNT_0,0X00); /* WRITE MSB COUNT=0 */
}
試寫出其相對應之組合語言程式
2.有一C語言程式如下: /* */
/* : SIMULATION PERIPHERAL */
/* SIGNAL TO 8255 */
/* METHOD : USING 8255 MODE_1 PORT_A=IN */
/* PORT_B=OUT */
/* */
/********************************************/
#include #define PORT_A 0x300
#define PORT_B 0x301
#define PORT_C 0x302
#define CONTROL_WORD 0x303
#define ESC 27
main()
{
int a; /* 請參考 .ASM 之說明 */
int KEY;
outportb(CONTROL_WORD,0xbc); /* 設定 8255 MODE_1 */
while(1)
{
KEY=getche(); /* PRESS ANY KEY RETURN DOS*/
if(KEY==ESC) break;
while ((inportb(PORT_C)&&0x20) == 0x20)
{ /* PC5是否為1 (BUFFER已滿) */
a=inportb(PORT_A); /* 讀取 A PROT 的資料 */
outportb(PORT_B,a); /* 將 A PROT 所讀取的資料 */
} /* 輸出到 B PROT */
}
}
試寫出其相對應之組合語言程式
3.有一C語言程式如下: #include main()
{
int i,j,k;
k=0;
for ( i=1; i<10000; i++ )
{
for ( j=1; j<10000; j++ )
{
k= j;
}
}
printf("%d",k);
}
試寫出其相對應之組合語言程式﹐
4. 試寫出一組合語言程式﹐可在繪圖模式中秀出各種顏色之直條圖形,如下圖﹐直線之起始位置及長度、寬度可設定﹐末了並更改游標形狀為全欄位反白。
5. 試寫出一組合語言程式﹐可在繪圖模式中秀出紅顏色之三角圖形,如下圖。
6. 試寫出一組合語言程式﹐可在繪圖模式中秀出藍顏色之圓形圖形,如下圖。
7. 試寫出一組合語言程式﹐可在繪圖模式中秀出你的學號。
8. 試寫出一組合語言程式﹐可在繪圖模式中秀出你的中文姓名。
/********************************************/
#include
並比較兩者之執行檔大小及執行速度。