|
东 北 大 学 继 续 教 育 学 院
/ L' y' m5 N$ ]2 \5 d1 I, E+ t" a/ S2 v' ]/ X, ]1 W8 b, j# D
汇编语言程序设计 试 卷(作业考核 线上) A 卷
/ ]. n. J$ u# n$ ?学习中心:
1 w+ A( Q; G% |1 P4 p院校学号: 姓 名:
+ @3 b& x* ?' ^/ m3 ^ x5 T2 q9 T) K" C- K
(共 6 页)
0 U& R' Q& P5 k% n# h总分 题号 一 二 三 四 五 六 七 八 九 十1 z) @4 N# M, ^0 Q! n
得分
3 n" u5 |8 ^3 V
( H' K& h# t0 y* {+ ~一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分)
) ?* G& z4 o9 A( a- c% I: E6 t7 l* k( {3 s
( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?( P" l2 G$ I( b: D1 l: N
A. 基址寻址 B. 寄存器间接寻址
. n5 }4 m9 f! H% R% tC. 变址寻址 D.基址变址寻址
( X: c( }( @- Q& a7 i; c T# C. Y ?( )2.确定下列哪些数据在汇编语言中的表示是合法的?( M( y, X+ ^2 ~6 o4 A
A. 2 AND 3*5 B. 138Q
! Q1 Q1 i- V, r0 z# b5 n4 BC. A3H D. HIGH AX: ^5 ?+ R( s* Z. Q) Q* M. D6 ~
( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?
1 c1 k* f$ p3 a' Y8 z/ ?9 q5 [A. 00FCH B. 0098H 0 P% ]% R2 o1 R. b' \1 H3 p. G
C. 00FEH D. 0102H: A2 W! b$ A& R( S
( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?% h0 t+ v2 |9 {1 u% k1 U" |8 ~' B
A. CMP AX,BX B. CMP AX,BX
( b2 |" v! S9 G JNB OK JA OK' _5 k7 z; H! n) a) N S, M/ [
C. CMP BX,AX D. CMP AX,BX
" D8 a% K' O( K2 k2 s JBE OK JNC OK& g+ R, [( g5 w" n1 r5 p
( )5. 下列程序段在语法上是正确的是?
2 b0 @. l& }1 p& x( H) Q. RA. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’
% H0 w. Z% k4 V: t i8 k% wC. X1 DD ‘ABCD’ D. X1 DB 1234H
$ K3 D, h/ J1 R( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?
1 A- v; ^9 K) ~ A. 0,0 B. 0,1
, s5 t* w0 C m. p9 J% C7 X3 hC. 1,0 D. 1,1
4 c* R8 U" F6 `4 t4 |( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?
/ M1 Z( x+ i6 Q; m" A A. DIV BL B. IDIV BL; c2 Z% v2 D3 x- x
C. CBW D. XOR AH,AH
' }3 r: Y8 |4 x( r8 X: |: H DIV BL DIV BL
3 u- O. B" d3 j- ^, O( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的?
3 ~( z6 m! j U+ M2 N+ SA. LEA SI,SUBR B. MOV SI,SUBR/ h) @4 D1 b2 B0 ` T. G9 ]
CALL [SI] CALL SI, A5 A1 E( S1 C$ z8 K
C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR
5 ~3 A$ a' i' g0 R2 } CALL BX CALL WORD PTR[BX]7 E* B- M; K6 c, Y1 t$ i
( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?6 _9 p2 R. u' U9 t6 w" i* l5 N
A. 17H B. 12H C. 13H D. 10H?
' A/ i- N8 G, S' y5 Y( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?
1 t3 `. L' G( O rA. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?6 {1 ^- O1 P& w7 U. @5 B" i
- V. {2 s4 j! M0 q. Q" S- H8 M二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)
. M& l* C/ l: J 1. MOV DS,CS ( )? 6. MOV CS,AX ( )?& j* g1 K$ H6 p/ O2 |; n& B
2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?
- J; H" d9 S) S7 W# s. F8 Y 3. POP AL ( )? 8. SHL AX,10 ( )?# D5 [1 H# y0 v' K
4. NOT 5 ( )? 9. IN AL,DX ( )' S7 N- o. I! c$ D. Q% O$ {
5. IN AX,200H ( ) 10. OUT 21H,AL ( )6 R1 S1 \- ~; k! B, J5 T
* I( E! Z- Y1 P% ]三、填空题。(20分)- O" C2 ?" G" P" k. V, m
1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
- l! ^, p; {: N7 n$ V7 h
; V, Z9 [) W3 {指 令 有效地址 实际地址3 @: u# `/ v9 ?/ m9 e
MOV AL,CS:[SI-100H] / d' ]1 ~% e6 f, H. p
MOV AL,[BP+10H] & A/ B+ ]$ F7 [; [" Z' J$ o
MOV [BX+SI+100H],AL
3 E5 @3 v2 S( Z/ y% v) ^ e: O4 ]5 {, v/ W* a# ?4 E" h" ^+ l3 C
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分); U: b2 s. b% c
DATA1 DB -16,‘AB’3 i" w4 i0 s. E3 Z- u( F
DATA2 DW -16,‘AB’+ \- j6 U+ s4 t9 l) J- A
" @1 I/ U& C8 r4 s# C" a' i) P DATA1 DATA2
9 G4 }" D3 M* G6 d, ~- [4 C % V" N, Q, y, H3 X2 \1 u, u
6 [0 V8 ]4 d% U9 T
, y7 }. }. {% b2 t7 u# j0 P& l3 `3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分)
: H, `, o) \) Y7 G' k. EC>DEBUG% t: _2 W' k- S. }2 N8 Q- n
-d 0:0
- B; [# f/ [" F6 R# v* e6 P q0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 00. I4 b8 c1 Z" A: h: L: p
0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0
% X0 O1 ` k7 ]7 n( B0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0
0 ~, ?7 p1 x0 J/ R) ]% c5 N1 K0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
7 t! \6 l7 ^! [4 J7 y0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD & g4 Z" x1 Q! |, m/ K. ?
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06
) X9 P% ], W5 l2 y; _# e0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06 ' `; t+ t2 e3 ?' s; A' r h, l! |5 r' w
0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 ! ?& w9 J, s, D) |# e8 N
! G3 n4 ]! K) c' e
4.依据下述子程序说明文件把子程序补充完整。(6分)8 }# |; R/ Z1 F- p; Y# o
1)子程序名:MSHL;7 j; X Y9 G( A t9 ?
2)子程序功能:多字节数据逻辑左移一位;
! f4 [, S# V) N1 z) @3)入口条件:数据低字节地址在SI中,数据长度在CX中;
; d$ i, L# d* Z8 I# f4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;" c8 e% Q2 R* U p. U
5)受影响的寄存器:F。0 f& L' T! H% [/ O
MSHL PROC. l7 O8 w8 F% T
PUSH SI% E* J& ^2 y; i
PUSH CX
; ?* R# W- d2 B; b+ j, X3 }3 x+ f ( )
. {7 v5 G* g, [, {9 U) c8 CMSHL1: RCL BYTE PTR [SI],1
$ D/ E% l9 }, F4 U ( )9 j9 x( R) F/ k. E
LOOP MSHL1" c2 ^5 l6 i& j$ U3 D- b l
POP CX6 z7 Y7 \+ g d* }& Q1 ?) j+ Y
POP SI
, u1 [, k( Q% S3 B2 ? ( )
4 K/ W0 c! ^) p" o4 }: V! aMSHL ENDP( U- C& q! {1 e* T5 K A$ V
- [5 k7 ^! n6 L; W' u. k. F5 g
四、改错题。(10分)
& B' b5 w4 H8 d$ q* g3 y- L% G/ l) F下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。
" F P( m& @1 D. q2 [/ I要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。+ P; f! d$ N/ \! ^3 L& o$ a& t
1. SEGA SEGMENT
- U$ }4 I' ]$ B4. DAX: DW A0H
2 |: B, w# \% P* }6 |2 i7 a6 {8. DAY DB 1000H/ H" q4 K6 k6 p5 h* s4 a: d' R* f
12. MAX DB 0,0
6 Q" d3 n7 i+ U15. SEGA ENDS. W: v) m7 ^! S
18. CSEG SEGMENT
3 \5 A' {, r) d) H4 ?21. ASSUME CS:CSEG;ASSUME DS:SEGA
" m+ r+ c1 B+ O4 e) V25. BEGIN:MOV DS,SEGA 4 F5 M, C. X+ L- V
27. MOV AX,DAX2 V+ E5 u) H. N; b* M
29. CMP AX, DAY) R& v. E5 L! K' m5 w
33. JG XGY w1 t) s! ~( l( Q
35. JZ ZERO
+ X: i+ T& v5 [4 b6 |$ G40. MOV AX,DAY& t' P; f% \% ]) e
43. XGY: MOV MAX,AX, c& Q0 E2 @5 S1 X5 N- o* k
47. ZERO MOV AH,4CH" w( h$ f/ @, X2 b7 W
49. INT 21( r. @5 _# Q6 O0 F4 q4 \0 w
50. CSEG END
7 D0 h9 E7 Y" U- J+ |$ R56. END START8 M9 i) B; w) [1 C
) \0 p! p% I/ o, v$ X9 B; b五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段5 O& ^/ z7 ^+ x8 f% ~- _
1. 将寄存器AL的高4位取反,低4位不变。" O4 p, f4 e6 g
& U9 c8 N! L6 s# M \
7 } Q& y2 C1 d6 o" c5 h
% T/ E1 K5 U6 ?7 z x7 G: Q( A
" H. W j! H1 i/ i
2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。3 I& H5 w1 C+ K1 i
+ Y% C3 }; G6 j) Z! o' A }# O) l7 P" ]" \5 c# }
/ w" C) R8 b( S. V2 f6 G- \
& H* Q/ U% Q0 L, ^. {; O, P7 o
* H* E; X# R, d/ f7 x7 i& B
, h0 h5 m/ K4 p _' r
; r" B3 ]2 a# E! z3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。: M4 h+ Q/ } K$ d
6 `1 D2 y! f0 l' y* R
* h1 }$ _, A' f3 y1 J& F2 P
8 t: x8 ]# v! l0 U6 i
8 u5 H; d! {7 ~2 G y' k8 R' A: Q
+ H) w: \" m) L3 e: i
, B0 D( K* c$ B9 Y4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。
s) L5 h5 W' d7 m4 A; V1 C A# u. u7 i4 m
1 y$ x D$ E3 P/ t
1 F6 D' h/ S/ k% Q9 E& i( X/ V4 Y5 h* ` L9 }
# f# H' D4 }% B7 m) F4 H/ N$ T6 P
( ?5 [2 x$ G9 g+ \' w
1 D" [0 W C d% \0 W* B* b8 X0 O: z
& C4 _! J3 n3 X O* l7 \# ?7 R
6 ]! v( d2 D7 C+ K
8 x3 s" z$ {0 u& t) ?5 ^; i1 H- W* f3 p% y3 q
5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。
; b" ^5 w7 h8 L9 [% o% o7 H
* t6 O$ w$ `3 A, m
. g( ]% `7 ^) S8 @6 e; P$ b
5 w z2 N% ^, C( c; {% }. t
( [4 ?& |! s# v0 q: C5 z4 P+ r1 _" x
# Z; R$ Y8 H7 L, W. g: W9 s. z- l1 u
: _# H$ R9 U" F' ?0 c) K9 S# g, x, z) S2 Y9 e
% F, B, H4 r% ?6 v$ o" T8 _
& T+ q8 ^3 Q1 v! A
7 D& K, j. _5 Q/ T9 ?( C7 p6 E: j" A& M$ q6 v% g2 ^2 K* Z/ ]- F% _! c
( Q6 o9 Z R. z: {
1 G" b" h+ m- h8 c5 X六、程序设计题。(15分)
3 V/ i3 c8 N& k9 s7 a$ A 已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。
2 i1 A* b ]( ^
; `- L2 w: q7 \3 R6 O! g/ e7 A3 ^$ R* l' X' f( z2 j1 f
$ u& w( X% B/ Y% p6 D6 b/ e; x( r+ l: L3 u+ I ?
* ^9 d: }. F' ]9 w, H X5 P0 K
9 Z9 {" n" w3 W& \, H/ C, S, U7 T
- R2 i* N7 y) e& Y2 E/ a, q
5 x" H: {* s, ^$ A8 }- z1 s
' e8 r& S! j8 k9 F! f; M4 `. o1 c5 y) y1 e
d, T2 D8 b, g2 s3 L) k! Y' _; s
0 m: x/ X6 w$ C0 t# u, H
7 v3 }, S& g9 \6 T( u: u
5 S5 k- O" j- a/ u. h, v- O* F! b8 l+ y, z( ~* J. X0 y4 `5 p6 D$ \
0 b" ^5 ]6 ~: _
, F; C$ l/ w; [+ O% D! C+ Y* t5 {7 W$ h! o
- _8 x8 s4 B+ k
2 l- r) R; {5 b! s, w9 M9 m( l9 ]' o9 y% t& P& h
J5 r6 {: P: L8 I
. l2 M( s5 I1 H4 |. [$ Z* G: m$ K9 k5 _* i
3 f- G) g- Y/ O; k+ p; @! @+ e1 Y8 V" X
1 S& }/ C1 B, K% K8 N
3 ]- [: e S0 P6 G7 J( J" l* P! q$ B: P! w$ S
|
|