|
东 北 大 学 继 续 教 育 学 院
6 s; y0 N& z0 A
$ s" x; M# N& y' z- q 汇编语言程序设计 试 卷(作业考核 线上) A 卷' C1 z: ?/ H: t; S4 d g
学习中心: : S. b' _0 @# F# Z! |/ O
院校学号: 姓 名:
+ O7 }$ S' |+ t4 K4 G
- d" l( ]; b4 W' B(共 6 页) 7 m2 f7 `: w+ |9 D: v1 g" h
总分 题号 一 二 三 四 五 六 七 八 九 十3 [9 x9 k `6 ?$ Z& {. c, u. D4 O
得分
$ V3 A+ R1 s5 x( H7 [3 y; l; }
1 L7 A. \ a& i( J% M, i一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分)+ c( I+ r$ a5 R2 _) E- M8 b
0 M9 l( L' o' j ~( b; a0 O- s8 u( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?' `, v& }7 z, I$ X4 F- q5 Y/ z
A. 基址寻址 B. 寄存器间接寻址
9 {, u: e$ Q% ~* ?+ r% [: [0 UC. 变址寻址 D.基址变址寻址- J% n9 L( R V+ c3 G6 ]. M! z
( )2.确定下列哪些数据在汇编语言中的表示是合法的?
* p6 S! I9 z/ h v, [A. 2 AND 3*5 B. 138Q
6 S( n0 G$ m* E" R* s+ W! F3 VC. A3H D. HIGH AX
9 Z6 I" w) c5 i( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?+ O% h; {" e$ M6 B& V
A. 00FCH B. 0098H
% u9 Z O9 k$ A8 jC. 00FEH D. 0102H+ }" J1 l/ G5 h; ^2 k2 |
( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?
4 m& q' E4 Q+ O! `5 m- m% g" w A. CMP AX,BX B. CMP AX,BX7 _% @) d; Z! c& c/ M9 K( O
JNB OK JA OK# j9 D' m/ U. e" b p' M8 w8 m
C. CMP BX,AX D. CMP AX,BX
: A5 D7 A5 I1 a* N# P; ? JBE OK JNC OK- G1 K7 `/ {2 p: D
( )5. 下列程序段在语法上是正确的是?
) m+ ^* W; x, z8 Q! c, A! ]A. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’
, m! |# D2 R- C0 B2 ]. d# M- M! LC. X1 DD ‘ABCD’ D. X1 DB 1234H
8 a' O( i& c/ u' R( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?; T$ e/ d# ^" |& h1 u8 S7 I
A. 0,0 B. 0,1 5 h4 F/ ?" q# ]$ z9 u
C. 1,0 D. 1,1/ @& D! g y/ F
( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?' T# w. n5 u# u* \, _( F$ |! f
A. DIV BL B. IDIV BL
( e% P6 @" h: m' r& e C. CBW D. XOR AH,AH
4 r# L5 z. f K0 k' b4 ~$ B: O DIV BL DIV BL2 H1 x& T! P" V
( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的?
" I- B0 A; k+ [0 }A. LEA SI,SUBR B. MOV SI,SUBR# w7 o- g0 R( M' N
CALL [SI] CALL SI8 s2 S) o5 r7 r: _. T8 Q
C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR, A) d P8 k8 T
CALL BX CALL WORD PTR[BX]
! B& G/ b5 x& ~- n( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么? i- p: {/ h# M& r% I o4 z4 i3 ~
A. 17H B. 12H C. 13H D. 10H?, Z. m& S5 g7 _
( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?. a! o# |+ [0 c$ o
A. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?& C4 H; W g6 ^2 s" S0 M
8 [' E% G V) B5 g' C: Q
二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)
/ v' a3 Z/ d' t0 R7 `' Q3 i 1. MOV DS,CS ( )? 6. MOV CS,AX ( )?
/ ~; p& i4 B. P# i6 S 2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?
% V8 b0 N0 A0 \2 p% n. M 3. POP AL ( )? 8. SHL AX,10 ( )?9 m" f) t. I) k5 `# [) i
4. NOT 5 ( )? 9. IN AL,DX ( )
) ^4 \* [ ], [5. IN AX,200H ( ) 10. OUT 21H,AL ( )6 F( W7 L9 c/ S2 K; y5 F$ R+ t
2 @/ `& Z. W# I5 x) R3 C三、填空题。(20分)
' J0 {$ }* S5 M3 N3 S I) T1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
) [! i" V- Q* \3 a
: Q- ]2 u& Z! T3 Y指 令 有效地址 实际地址7 }5 _. @3 e* V" J' j
MOV AL,CS:[SI-100H]
- K: W. x3 T; y) k( EMOV AL,[BP+10H]
! d; V" L0 V1 L5 ~( lMOV [BX+SI+100H],AL 7 U, s {# U# K1 ^7 ] m: @( K
1 z0 I! {' t: u
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)
% @8 u8 g+ T3 Z DATA1 DB -16,‘AB’
( k% r3 S8 z: h9 ~$ @0 a+ j DATA2 DW -16,‘AB’
; Z' W0 c P* R6 y) c! `
6 G3 ^. U) {2 L' v: e) w L DATA1 DATA2
% J# C; y1 c5 \; a: `1 n
+ ^1 u. {$ e, I z! a
. F7 P- Z/ M! A( n
' t5 N$ Q: j1 ~& ~: {( r, g3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分)! |( ^* N8 p$ X: ?+ @
C>DEBUG
1 r& Q! l& @; g2 `6 q/ S% p-d 0:0! E) G M7 _+ c2 O( r, ]0 r
0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 00) w' N7 E* [3 D; v$ m* v& J
0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0
9 P/ q9 |1 u2 U0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0 # F9 H) ?, X4 J' D& \6 x
0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
3 D. f# B% d: x4 e6 }: B0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD : X( u" r2 T- u
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06
$ t s1 @6 d1 B3 N" f4 i) F0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06 + {0 v8 `& d/ ?/ r" O' F, S: L
0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 7 t* Q5 C0 I* s5 Q, _
7 Z( e; ]* @+ h# k6 }' Y2 s4.依据下述子程序说明文件把子程序补充完整。(6分)
; `( e( n) R$ r+ r7 `1)子程序名:MSHL;4 `( _1 w' R; C% d
2)子程序功能:多字节数据逻辑左移一位;
1 M- Y0 u+ d" {5 k2 d' ^% u3)入口条件:数据低字节地址在SI中,数据长度在CX中;
8 O2 C. O" T8 `7 s0 _4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;/ a9 u/ _4 M; p3 D9 e: r
5)受影响的寄存器:F。2 A7 I/ N8 v6 n& i
MSHL PROC
+ ^7 t+ g B3 U; s" G K3 L6 w PUSH SI9 t% G) x7 [( r
PUSH CX
/ v# _& r. H4 F: F ( )
" x6 V2 h6 V, ~# z1 \MSHL1: RCL BYTE PTR [SI],1- D% {6 |' x7 j, S7 a. [0 o
( )- N9 r F6 N0 G) W) L- f
LOOP MSHL12 ?4 X9 J, u- s& P R
POP CX. _7 s1 ~" C& ]& t3 i$ ]" m& W
POP SI
5 K/ h7 p6 n s/ }* N" Y' j ( )/ i8 j a8 D8 K* U3 \! m, |
MSHL ENDP
( E1 G) i$ D+ Z- p7 ~4 p2 j5 n3 S) J' b/ u
四、改错题。(10分)
' v, p) v- O+ ?下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。
9 H9 P3 m1 N7 N9 i, z# \, c要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。
* W4 x$ d0 n0 d+ q, L9 Z! c1. SEGA SEGMENT' u, N8 x+ b3 _3 K1 `6 B8 o6 H- A
4. DAX: DW A0H
9 P9 o4 V. v8 S. E' i9 @/ A8. DAY DB 1000H# }2 w2 E( L4 |* E
12. MAX DB 0,04 l6 R2 ^3 R8 Q+ @6 J f( b; T
15. SEGA ENDS
9 U8 Z' k; @- G8 V18. CSEG SEGMENT
. p, K- b$ L G: E& U4 L21. ASSUME CS:CSEG;ASSUME DS:SEGA; s C o6 C! D! q2 e% j. [' g
25. BEGIN:MOV DS,SEGA 5 ~# y( {0 U7 B; D# u( ^
27. MOV AX,DAX
1 r, ?$ P, N9 E' T e* H" z29. CMP AX, DAY& e4 N6 Y6 l) g$ f
33. JG XGY
4 |9 s( q0 M* A5 m5 }4 b35. JZ ZERO( v4 J2 {6 x* ]1 N
40. MOV AX,DAY+ }% E9 j" w) O- \
43. XGY: MOV MAX,AX
5 g+ v- C4 e, c1 k" v47. ZERO MOV AH,4CH
+ y% B1 f; y: c b49. INT 21 _$ n$ t" E C- n! d" Q U: r
50. CSEG END# w; ~3 n" `7 j$ m! v* }/ |% k$ y
56. END START
. D1 Q& j* Z% b f1 |
0 r3 l, W0 z( ^; O+ k五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段' ^. h+ `- u# d9 o$ H& W+ T
1. 将寄存器AL的高4位取反,低4位不变。
/ i7 C. m; l. D
$ ?) a2 G$ z$ Y* M1 \0 z) X
# `2 t X" O/ A: K. I1 r. l) J) m* Y. U& B3 G" A: P
3 s+ B5 Q1 u0 u8 [. C
2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。
+ f6 R$ c% p1 ~2 j1 o7 }# j, d" u7 W8 V
% N x( p- _* W; T# r& Z6 y! A! O& {1 @7 Z
9 U+ k9 r, L. {4 \4 {
* l3 m! R; r9 A0 d7 K. v: O" G+ _ X+ B6 J
% h* r A/ m6 g3 z' X, M/ k/ G8 r3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。. f3 S8 I: _/ e9 j3 y* E& ^
7 r0 ^+ x- O1 b7 ]$ u7 [& z
' |# O _& |; y
' a) q$ H' c8 u. K& d4 Q3 P r
' h" M* A) _* e% A& a7 Q
4 U- G1 h: K! @9 I6 K
3 R3 i; m3 X& a/ }% _& j' ]. x$ y2 r: |# F$ \6 N o6 F
4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。1 s6 S* N$ R5 J4 `3 m( d& C
& j* O+ u& d( ?8 z2 s1 i: Q
) Q! O3 N$ P j; }- b0 t" n" l
! W: b* O2 ?5 C* f
1 N$ \6 l& n9 |% @: Y
1 \) ^" [6 b; Z+ z% F3 `; J* h' y- X
6 F% l9 v3 `& E o3 ~
# u. q& d7 h1 U! ]3 I7 G7 q. a
2 q8 q8 i2 X6 o+ J" u& v C$ \" Y! h6 f
; m% J* Y- y! w E
. f, |( U+ j1 |/ f
5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。
, {- n$ P: Y. O
7 E4 `* I7 I8 P2 v- C0 p
. I# _0 T- L3 Y+ `- `$ u/ r1 s" T2 q* M
( l& Y- n* E8 b5 ?7 k
' R; W" t. R$ Q. b4 p7 S7 m( _1 k" q$ [$ F& y
9 J B1 e; G6 A, B* s2 `- G
- }/ B! H: U6 u; \4 z+ z' j! z- ^5 g/ a( |0 o- k; o
) v: K- y1 |1 k4 B' F
, o' S. O# y% F# m. o+ f& v$ X( a0 }: c ^$ K; C/ ]
$ m! b1 ]. R% p
0 E4 H: F; g* a- ~- v& n
3 e4 `4 |4 c5 ^1 ^六、程序设计题。(15分)4 K4 B/ j- t* k/ {
已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。
4 E. o3 M+ z- H1 J" S4 i# a- R5 S7 N. {- e* q
; @1 ~4 r0 z7 A" e+ M' C& a& v% q; o$ W
, \* G& }# }# s$ C4 z5 n* W @) p; o! w' Z0 o' A
2 m4 ^, b3 f/ u
% J$ [) T. V" |) \
1 \, b( [& k, c7 [3 H6 d
3 ?! a5 l7 ~ n# @* L$ Y( J( N
4 X5 z4 ~) j) @ I4 w$ n+ g, I ^( @" |& B+ V
$ o1 G4 ?% Q4 n0 b. Q
/ u0 X3 ~4 }6 D! g, j T+ q' w
; K9 t1 [# E3 W( P/ \
6 Y5 k; V& ~/ C4 K# y" u, ?' ]
: j/ `3 c. I$ y/ C% H
# {% O- ]% ]0 r* c) T3 g1 O% T- B; p6 @/ ?* p; C
8 a/ c" d3 b" H' `/ H6 O W$ T8 h2 q9 R/ l
1 ?5 s) ~$ o# T
' H# m* P. {7 n& S, ]) y
$ G/ o R `; [' ?! h& L7 i! ]( L# r: h$ q- Y
% l# ]3 R2 F. j
. ]* h( p" S* |' O, k, l- F$ l# {9 v' n/ ?% k8 ~! O
0 ?! U2 ~0 @8 g4 P0 R+ E
/ V( t* G- W+ k
/ b* a% _ Y9 b8 Y6 K
|
|