|
东 北 大 学 继 续 教 育 学 院
, l0 m" ?$ O. g7 h3 F* S
# s. [* u. r( D0 e 汇编语言程序设计 试 卷(作业考核 线上) A 卷/ }4 k2 u1 K' [) A5 @, y
学习中心: ' y5 K( h8 X r7 D: B# V
院校学号: 姓 名:
T5 c- N. \+ Q7 n+ R0 Z) d t
/ ^5 l$ r1 _$ w(共 6 页)
0 q' S- }+ d+ L% ?, G$ f总分 题号 一 二 三 四 五 六 七 八 九 十/ ?# k5 M& V$ f0 l/ A
得分 % @3 B F8 `) `% Y X( V1 `
. r; n) w W; R' e5 ?
一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分)$ G0 j% ], o+ v1 Z" c. N& |2 ?9 p- \( E
5 }5 G @8 [0 }7 S0 q% _
( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?
! Z; ^- }4 O4 u( q% ?4 yA. 基址寻址 B. 寄存器间接寻址 # o! p4 e9 I! {+ x
C. 变址寻址 D.基址变址寻址
1 Z8 u7 W7 l: `* c( )2.确定下列哪些数据在汇编语言中的表示是合法的?, R2 T6 V* U& `6 S8 ]0 r. J
A. 2 AND 3*5 B. 138Q
6 ]$ m' a0 c4 s9 ?+ oC. A3H D. HIGH AX7 Q& E! {5 ^; D/ U% _2 S
( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?, O. v1 o" ^' Q* b7 l
A. 00FCH B. 0098H
4 N9 j/ m$ r7 P0 G$ U; L7 tC. 00FEH D. 0102H
, A) g! F& U- C0 S; f3 k( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?
- l* \& N+ q! ?* l4 [: u4 @ A. CMP AX,BX B. CMP AX,BX
6 y" t) ]0 a) Y( }' _# } JNB OK JA OK1 w1 ]. k1 U, a7 P9 Q+ z ?
C. CMP BX,AX D. CMP AX,BX
- ^. U; t* M+ } JBE OK JNC OK* v3 c8 y7 W: t- f; M
( )5. 下列程序段在语法上是正确的是?, a. F" y; g0 w+ g( T# [
A. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’
$ C1 @, f: \0 b" lC. X1 DD ‘ABCD’ D. X1 DB 1234H( V% r% h5 h9 E# C2 e8 ?: d+ G
( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?
$ @4 h, W8 B1 l0 T# T' Q( d A. 0,0 B. 0,1
( ?7 j4 c! H; G( nC. 1,0 D. 1,1
: E: H9 M/ ?8 N4 N. i3 C* V( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?
3 O2 j# X6 B0 C( A Y) z9 n A. DIV BL B. IDIV BL1 x/ A% J/ u! n' }$ F
C. CBW D. XOR AH,AH1 y `: D' \) ?& ~# n
DIV BL DIV BL/ i j+ I y5 g& [" `5 H6 v
( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的? " E- ^8 n) x# n j! P
A. LEA SI,SUBR B. MOV SI,SUBR
1 @3 q' R. E; [* E% w; h* f% bCALL [SI] CALL SI3 d0 a% \+ T+ _2 b1 n6 r- B
C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR* G& P8 {% r5 D( c
CALL BX CALL WORD PTR[BX]( q* Z! ?' S4 E2 Q+ c
( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?' D, D$ {, P* B( _" Y
A. 17H B. 12H C. 13H D. 10H?
) p* r n$ V! o( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?: c% _! J3 W% h) J# {
A. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?
% ]5 l. X" o" P; H3 |7 T2 p8 k) ?0 X# c# C
二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)
( C* \' Q$ e: c 1. MOV DS,CS ( )? 6. MOV CS,AX ( )?( G3 k0 j0 a- e. u) v
2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?
- i# |/ G6 l/ x1 S 3. POP AL ( )? 8. SHL AX,10 ( )?$ `! y/ \2 u: L8 F- F
4. NOT 5 ( )? 9. IN AL,DX ( )
; ]& s" h8 @7 G* |- Y# j6 W5 C5. IN AX,200H ( ) 10. OUT 21H,AL ( )
- v6 z) j( h5 y/ ~$ O+ W; ~; a$ f+ K3 P3 y& c$ ]
三、填空题。(20分)
' G4 W1 \) ]# B' a1 ]" y# Z1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)7 `5 u4 s d4 Y) a0 l
9 n! @/ P7 d' m( S- b% M, g指 令 有效地址 实际地址& ]- t# q' l" c+ F2 d2 k5 `, h
MOV AL,CS:[SI-100H] ! Q5 P4 {# \& }+ H5 Y+ h9 u
MOV AL,[BP+10H] 2 _7 d9 J9 o( Z3 L
MOV [BX+SI+100H],AL
- s7 n2 r0 h1 S- D+ ~+ Q( e3 |5 m F; B" f, H; _
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)4 g C( ` r k6 z% g( w
DATA1 DB -16,‘AB’
5 k) Z2 e6 t" ?; X! ?& `; z8 { DATA2 DW -16,‘AB’
7 _" s7 t+ _2 G7 L) ?1 b
! E: T. z, ]8 M) i6 {6 s4 L DATA1 DATA2
8 j; g$ `3 o- X& z8 e 6 M+ |$ J* B0 Y6 `
: B: C, p( E) P; j1 X/ g: L; R# C' r' l. P4 c- I( |
3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分) B7 ~2 r8 u% O1 A# }. q7 t- w6 _
C>DEBUG! V4 h% W! E% a( h; C
-d 0:0! T$ h+ A: Z5 w
0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 005 ~; c2 R, C0 O- t
0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0
, f+ ]% w3 M7 Z- S4 r0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0
* X. }" \; \! G* ^+ @. B; H0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
+ Q/ K( x. W* a7 ?. j0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD # X* G: l! Y7 U4 F% u
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06
N0 W1 m- b% H2 w' V" j0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06
- w9 ^$ Z) R: n, g) c, U( O& x0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 , u* ~. d! X% _/ r5 |
: M4 y8 f: ^6 r" n) j7 I6 P |
4.依据下述子程序说明文件把子程序补充完整。(6分)' J# Q( f9 o' g2 d3 J4 u
1)子程序名:MSHL;
$ J+ l q( z. t- u; {2)子程序功能:多字节数据逻辑左移一位;
/ [( B* k- ?$ E2 O9 s3)入口条件:数据低字节地址在SI中,数据长度在CX中;& j& D/ c, |1 v- P) {) A! ]: R
4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;0 @4 _. B+ m4 i. M" r- T
5)受影响的寄存器:F。
; f9 D6 x) Y0 W' H6 QMSHL PROC% V8 @# q- I4 D5 K! l; G4 C
PUSH SI3 g% Y W) O" {7 q; U
PUSH CX5 ] y3 o. V1 k2 Y+ Z8 t
( )" P7 P" ]; N8 \: U j
MSHL1: RCL BYTE PTR [SI],1/ K: Y# L9 }: P g! S. `- i+ ~. s4 s
( )1 |5 N' e7 _* u% m: ~2 ^" p; p: ~4 c
LOOP MSHL1
`" X8 ^6 g& X8 t POP CX
( M' r' r0 E- r. f5 G- Q POP SI
8 i, g( z0 Q& g- }5 f* T ( )$ ]5 Z @" p7 s7 o; @2 I7 i( ]
MSHL ENDP
" T5 C. a9 ?) Z! K4 O. V$ ^7 ?! z4 W+ v; [- c2 n; G3 n
四、改错题。(10分)
( E7 e! w4 c, a! I( H8 n5 l下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。
3 N( L/ s/ a6 k* l; L4 C要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。, l/ z T7 X0 ~3 U( @. o
1. SEGA SEGMENT0 b+ S/ d: z/ E! V5 A3 c9 ?1 S% U
4. DAX: DW A0H5 F/ f( o& {2 \1 i- H
8. DAY DB 1000H
! j' ^3 V7 u: M/ A) k6 `12. MAX DB 0,0
4 ?: \& I8 u. Y4 a15. SEGA ENDS" f7 w, ^! C# F/ N% Y
18. CSEG SEGMENT
z2 G @8 \* j9 {1 ^; R21. ASSUME CS:CSEG;ASSUME DS:SEGA5 I; v5 b6 m* p7 i& F
25. BEGIN:MOV DS,SEGA
}0 {* I9 _1 t27. MOV AX,DAX6 u# C/ e9 X. ]8 M& v3 t
29. CMP AX, DAY; G) X7 q* e8 p8 {9 z; ^
33. JG XGY
1 D2 k6 z1 I, u3 ]35. JZ ZERO5 D6 D4 t2 h' |; i, e5 Y
40. MOV AX,DAY2 O+ F5 z: |) r3 R% z! \/ ~4 J/ u
43. XGY: MOV MAX,AX8 N7 ]2 L) K& d% R
47. ZERO MOV AH,4CH
* A9 g2 U) d) y ~2 ]& s49. INT 216 c- ^5 s0 M8 e) O3 C R l
50. CSEG END
9 h# z- E- U$ Y. u% i4 g( k7 Z: d' G56. END START* A% }1 a3 F( g% `$ Q
$ `5 W' i0 h1 [) l/ h五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段: s/ F+ ]. u- q, K
1. 将寄存器AL的高4位取反,低4位不变。1 X3 f! X Z5 U
+ r6 A1 c% e6 R: T4 b4 r1 `( X" w
- V$ i; X; d( V) c
: H' A& c+ E- U- F% C: v3 f' p8 w3 d8 _+ J- T8 C/ E0 B
2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。
+ s1 L$ {: L% X! B( U
8 C( b6 l/ ?$ B! S! L3 _% w
9 Z) {* H* `7 e, X; P s
/ p( D0 a8 L6 e7 ?1 u6 B" [. a4 `
( D. B- H* A. P) S0 F- U
) E% h a+ B, X! o8 K$ x3 R: z& `0 s/ T& s6 d- s, {
8 s$ N, h; l( T3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。; M7 { G) Y/ j3 J6 {" }; U1 u
" h: ?4 }( O) E
8 h9 M1 d6 }& G I/ V1 u! D
& n: w& r, F1 C1 c f% x* g' [( H& M3 n2 _
5 s! r& r( O! k5 }2 n/ I$ S' F: Q6 f) m/ X- t7 q
6 x$ ]- z6 F7 t2 |& y0 d k
4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。
5 ], a; U5 T# w# w, D W, t! p
; Z: ]. k0 q/ L% K7 ?) a( [
- J Z4 W6 e8 A) \ [5 F" i' B
8 Y' U4 I2 E1 C$ w4 L0 }
2 c* w, [6 ]+ C4 d( N% t( o1 C4 V9 [% R) j' c) F% x
/ \1 w% T3 V2 h2 H: T( S* y& I
3 L. `0 x- x8 o' ?+ F, O/ y7 t
6 k" t9 ]% T' u$ |: w
9 P7 t; ~" ~0 t9 ]$ _& l8 n# k1 n& q9 Q+ ~
E5 _8 R6 p% K) N
5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。) N6 m- \3 M) p4 s c& W T
5 V6 R2 j5 Y3 }+ i @/ h4 M6 @1 `9 d" {6 w
% h2 `( a/ r1 N! ~8 t2 i! k5 A9 W; t1 x, R8 m
- v9 M. u9 z% o7 |
5 p) y+ }# M- h- H$ F2 y8 J2 D) Y
. m7 O6 B, x8 O9 y: v" E" O7 f& W% Y
6 N# K4 @5 T! A8 L6 K, h- ^! b3 x: ]3 o8 d! G8 P" ~: X: F
2 @ L1 n/ w- k0 T, `) H& I1 n/ s& w
# ?! r6 J. w4 u4 _, b: N
+ u8 }) C' Y( U& y& A' ]) E {# y1 d
* ?6 d; r+ y, P/ M2 C- ?( E& m
, a$ Y0 }; r+ f9 N; X& [' Y+ \# T六、程序设计题。(15分)5 [( O( _$ e+ p# h
已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。6 U0 P- z" J8 U6 M- I# }; K0 w2 d3 a
( `1 p9 {* T- P
# k! i. S' Z. W0 R# F1 M6 V1 G+ s) g& S0 ~4 u4 y6 g7 [) C+ B! r
/ N2 t6 r9 H* I7 g
4 J7 z/ E" [# r; D' J+ @# i4 E/ x7 Z* V5 r& t3 |
2 h& `& N# d7 Y/ v3 ?: Y/ V4 ^9 J3 \7 |6 M
; ^/ [+ W1 I. r, }. J
, v! F$ i+ Z; r B4 k. _
) O# H! y! ]9 }: f* Q5 h( _. l
- R6 x7 K A" s! o7 q: q: G8 j/ K' D& W# R
5 B: Y7 c1 i3 Y* a
0 z4 f7 e9 {3 t$ B4 J6 R! \: V' `# k9 }+ O6 _
+ Z# _3 [* c. O
( w9 ?2 K/ P4 f* S1 b( K4 D `) N3 ~) J1 m$ [7 n/ A1 @; @
& U2 i0 d6 @- y0 u# x T1 q- K# H( F
6 J! ?* A) A$ S5 X/ \) A: q7 F& Z& k
2 W( |4 z9 G. r
. t) z( u8 P2 N6 S8 f; {7 r
2 I! B( R- p$ T- `& F: O3 X2 d+ b& q5 m
8 f3 N# S$ r+ }( {* Y; E1 E
9 ^8 [% ^" Z+ ?5 _( T
# N' t7 V, E/ o5 G |
|