試題 12
在 COMET 型計算機上可以使用試卷上所附的 CASL 匯編語言。閱讀下列程序說明和 CASL 程序,把應填入程序中__(n)__ 處的字句,寫在答卷的對應欄內(nèi)。
[程序說明]
本程序?qū)⒁粋漢字的點陣逆時針旋轉(zhuǎn) 90°,并輸出旋轉(zhuǎn)后的點陣字形。
圖12-1是漢字“轉(zhuǎn)”字的 16×16點陣字形。用“0”表示空白位置,用“1”表示非空白位置,“轉(zhuǎn)”字的第一行即可表示為
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
若把它看作一個宇的16個Bit,“轉(zhuǎn)”字的第一行就可以用十六進制的 1040 來表示。同理“轉(zhuǎn)”字的第二行可表示為 1040,第三行可表示為1048,……在 COMET 機中,用 16 個字即可存放一個漢字的點陣字形!稗D(zhuǎn)”字的點陣數(shù)據(jù)及字形如圖 12-1 所示。
將一個漢字點陣逆時針旋轉(zhuǎn) 90°,就是把該漢字點陣的最右列作為旋轉(zhuǎn)后點陣的第一行,次最右列作為第二行,依次類推,形成一個旋轉(zhuǎn)后的點陣字形。圖 12-2 是將“轉(zhuǎn)”字逆時針旋轉(zhuǎn) 90° 后的點陣數(shù)據(jù)和字形。
1040 | ...x.....x...... | 0000 | ................. | |
1040 | ...x.....x...... | 0200 | ......x......... | |
1048 | ...x.....x..X... | 1640 | ...x.xx..x...... | |
FDFC | xxxxxx.xxxxxxx.. | 32E0 | ..xx..x.xxx..... | |
2040 | ..x......x...... | 1259 | ...x..x..x.xx..x | |
2844 | ..x.x....x...x.. | 1246 | ....x..x...x..xx. | |
4BFE | .x..x.xxxxxxxxx. | FE44 | xxxxxxx..x...x.. | |
7C80 | .xxxxx..x....... | 13C8 | ...x..xxxx..x... | |
0888 | ....x...x...x... | 1240 | ...x..x..x...... | |
09FC | ....x..xxxxxxx.. | 0200 | ......x......... | |
0C08 | ...xxx......x... | 1120 | ...x...x..x..... | |
E810 | xxx.x......x.... | 17FF | ...x.xxxxxxxxxxx | |
4890 | .x..x...x..x.... | F120 | xxxx...x..x..... | |
0860 | ....x....xx..... | 1D10 | ...xxx.x...x.... | |
0820 | ....x.....x..... | 1318 | ...x..xx...xx... | |
0810 | ..,,x.,....x..., | 1010 | ...x.,,,...x.... | |
圖 12-1 | 圖 12-2 |
程序中,標號為 OLDPN 起的 16 個字中存放著“轉(zhuǎn)”字的點陣數(shù)據(jù),旋轉(zhuǎn)后的點陣數(shù)據(jù)存放在標號為 NEWPN 起的 16 個字中。程序的前半部分,將該點陣數(shù)據(jù)逆時針旋轉(zhuǎn)90°;程序的后半部分,將旋轉(zhuǎn)后的點陣數(shù)據(jù)加以編輯。用字符“.”表示值為 0 的位,用字符“*”表示值為 1 的位。從而將新的點陣字形按行輸出。
[問題]
在程序中的①~⑧處各填入一條正確的指令,以完成此程序。除非必要,標號欄不要填寫。
[程序]
標號 | 操作碼 | 操作數(shù) | |
START | BEGIN | ||
BEGIN | ST | GR4,SPSAVE | |
LEA | GR2,0 | ||
NEWLN | LEA | GR3,0 | |
ST | GR3,NEWPN,GR2 | ||
NEWCL | ST | GR3,WORK | |
LD | GR0,OLDPN,GR3 | ||
__①__ | |||
AND | GR0,NUM01 | ||
LEA | GR1,15 | ||
SUB | GR1,WORK | ||
SLL | GR0,0,GR1 | ||
__②__ | |||
ST | GR0,NEWPN,GR2 | ||
__③__ | |||
LEA | GRl,0,GRl | ||
JNZ | NEWCL | ||
__④__ | |||
CPA | GR2,NUMl6 | ||
JMI | NEWLN | ||
GETLN | LD | GR2,NEWPN,GR1 | |
LEA | GR3,15 | ||
SETLN | LEA | GR4,0,GR2 | |
AND | GR4,NUM01 | ||
__⑤__ | |||
ST | GR0,OUTLN,GR3 | ||
SRT * | GR2,1 | ||
__⑥__ | |||
JPZ | SETLN | ||
OUT | OUTLN,NUMl6 | ||
__ ⑦__ | |||
LEA | GR0,-16,GR1 | ||
JNZ | GETLN | ||
__⑧__ | |||
EXIT | |||
OUTLN | DS | 16 | |
NEWPN | DS | 16 | |
NUM01 | DC | 1 | |
WORK | DS | 1 | |
NUMl6 | DC | 16 | |
CHRET | DC | '.X’ | |
OLDPN | DC | #1040 | |
DC | #1040 | ||
DC | #1048 | ||
DC | #FDFC | ||
DC | #2040 | ||
DC | #2844 | ||
DC | #4BFE | ||
DC | #7C80 | ||
DC | #0888 | ||
DC | #09FC | ||
DC | #1C08 | ||
DC | #E810 | ||
DC | #4890 | ||
DC | #0860 | ||
DC | #0820 | ||
DC | #08101 | ||
SPSAVE | DS | 1 | |
END |
*老頑童注:此指令有錯,疑為 SRL
試題13
閱讀下列程序說明和 C 程序,將應填入程序中__(?)__處的字句,寫在答卷紙的對應欄內(nèi)。
[程序說明]
本程序?qū)⒁粋給定漢字的點陣逆時針旋轉(zhuǎn)90度,并輸出旋轉(zhuǎn)前后的點陣數(shù)據(jù)及字形。
附圖是漢字"轉(zhuǎn)"字的 16×16 點陣字形,用數(shù)字 '0' 表示空白位置,用數(shù)字 '1' 表示非空白位置,“轉(zhuǎn)”字的第一行機即可表示成如下的{0,1}序列:
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
如果把它看作一個字的 16 個位,“轉(zhuǎn)”字的第一行可以用 16 進制數(shù)的 1040 來表示.同理,"轉(zhuǎn)"字的第二行可以表示為1040 ,第三行可以表示為 1048,...等等。依次類推,用16個雙字節(jié)整型數(shù)即可存放一個漢字點陣字形。"轉(zhuǎn)"字的點陣數(shù)據(jù)及字形如附圖的左半部分所示.將一個漢字逆時針旋轉(zhuǎn)90度,就是把該漢字點陣的最右列作為旋轉(zhuǎn)后點陣的第一行,次右列作為旋轉(zhuǎn)后點陣的第二行,...,來形成一個旋轉(zhuǎn)后的點陣字形。
附圖的右半部分就是將"轉(zhuǎn)"字旋轉(zhuǎn) 90 度后的點陣數(shù)據(jù)和字形。
程序中,數(shù)組 old 中存放著“轉(zhuǎn)”字的點陣數(shù)據(jù).函數(shù) turnleft 將該點陣數(shù)據(jù)逆時針旋轉(zhuǎn) 90 度,旋轉(zhuǎn)后的點陣數(shù)據(jù)存放在數(shù)組 new 中.函數(shù) display 將旋轉(zhuǎn)前后的點陣數(shù)據(jù)加以編輯,用字符 '.' 表示值為0的位,用字符 'x' 表示值為 1 的 位,從而將旋轉(zhuǎn)前后的點陣按行輸出其 16 進制數(shù)據(jù)及字形,如同圖 13-3 和圖 13-2 所表示的那樣。
1040 | ...x.....x...... | 0000 | ................. | |
1040 | ...x.....x...... | 0200 | ......x......... | |
1048 | ...x.....x..X... | 1640 | ...x.xx..x...... | |
FDFC | xxxxxx.xxxxxxx.. | 32E0 | ..xx..x.xxx..... | |
2040 | ..x......x...... | 1259 | ...x..x..x.xx..x | |
2844 | ..x.x....x...x.. | 1246 | ....x..x...x..xx. | |
4BFE | .x..x.xxxxxxxxx. | FE44 | xxxxxxx..x...x.. | |
7C80 | .xxxxx..x....... | 13C8 | ...x..xxxx..x... | |
0888 | ....x...x...x... | 1240 | ...x..x..x...... | |
09FC | ....x..xxxxxxx.. | 0200 | ......x......... | |
0C08 | ...xxx......x... | 1120 | ...x...x..x..... | |
E810 | xxx.x......x.... | 17FF | ...x.xxxxxxxxxxx | |
4890 | .x..x...x..x.... | F120 | xxxx...x..x..... | |
0860 | ....x....xx..... | 1D10 | ...xxx.x...x.... | |
0820 | ....x.....x..... | 1318 | ...x..xx...xx... | |
0810 | ..,,x.,....x..., | 1010 | ...x.,,,...x.... | |
圖 13-1 | 圖 13-2 |
[程序]
#include <stdio.h>
#define EMPTY '.'
#define NONEMPTY 'X'
#define LEFT 0
#define RIGHT 1
main ()
{ static unsigned old[16]=
{ 0x1040,0x1040,0x1048,0xFDFC,0x2040,0x2844,
0x4BFE,0x7C80,0x0888,0x09FC,0x1C08,0xE810,
0x4890,0x0860,0x0820,0x0810
};
unsigned new[16];
trunleft( old,new );
display( old,new );
}
turnleft( old,new)
unsigned old[],new[];
{ int row,k;
for ( row=0;row<16;row++ )
for ( k=0, __(1)__ ;k<16;k++ )
new[row]|=(( old[k]>> __(2)__ ) &1) << __(3)__ ;
}
display( old,new )
unsigned *old,*new;
{
char out[2][17],letter[2];
int row,col;
letter[0] = EMPTY;
letter[1] = NONEMPTY;
out[LEFT][16]=out[RIGHT][16]=__(4)__;
for ( row = 0;row<16;row++,old++,new++ )
{ for ( col = 0;col<16;++col )
{ out[LEFT][col] = letter[ ( __(5)__) &1];
out[RIGHT][col] = letter[ (__(6)__) &1];
}
printf("\n %4x %s ",*old,&out[LEFT][0]);
printf(" %4x %s",*new,&out[RIGHT][0]);
}
}
C語言
試題3
(1)*++pa
(2)*++pa
(3)*pa
(4)return(total)
(5)n<3 || n>MAXNUM
(6)p+n
試題8
(1)*decode()
(2)(num==255)?num:hum-1
(3)CODE *
(4)p→forward
(5)p→forward
(6)p→backward
(7)*s++
試題13
(1)new[row]=0
(2)row
(3)15-k
(4)'\0'
(5)*old>>(15-col)
(6)*new7>>(15-col)
CASL
試題2
(1)SLL GR0,3
(2)ADD GR0,A
(3)LEA GR0,5,GR2
(4)LEA GR2,0
(5)LEA GR2,1,GR2
(6)SUB GRO,WORK
試題7
(1)LD GR1,HXFFFF
(2)LEA GR1,1,GR1
(3)JMI ONEONE
(4)JZE ENDPGM
(5)ST GR0,UNPACK,GR2
(6)EOR GR3,HXFFFF
(7)ST GRO,UNPACK,GR2
(8)JPZ LOOP2
試題12
(1)SRL GR0,0,GR2
(2)OR GR0,NEWPN,GR2
(3)LEA GR3,1,GR3
(4)LEA GR2,1,GR2
(5)LD GR0,CHRET,GR4
(6)LEA GR3,-1,GR3
(7)LEA GR1,1,GR1
(8)LD GR4,SPSAVE
- 推薦給朋友
- 收藏此頁
·2008年下半年軟考信息系統(tǒng)項目管理師試題(下午II) (2008-12-21 22:39:30)
·2008年下半年計算機軟考網(wǎng)絡工程師試題(下午) (2008-12-21 22:26:13)
·2008下半年軟考系統(tǒng)分析師考試試題(下午)II (2008-12-21 22:20:49)
·2008年下半年計算機軟考程序員試題(下午) (2008-12-21 22:18:18)
·2008年下半年計算機軟考程序員試題(上午) (2008-12-21 22:11:38)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。