|
东 北 大 学 继 续 教 育 学 院
: h/ p6 E2 A( Z; q1 r
+ B/ B8 x- q- p/ Z+ c P 汇编语言程序设计 试 卷(作业考核 线上) A 卷8 r+ q/ |0 Y: c8 d5 K
学习中心:
. C5 j, H% H! _& c7 w; V( @' d院校学号: 姓 名: 7 O% }2 c; z% X: o3 p
3 w$ p. }: T# {# A(共 6 页) ( t: K" L. T( v
总分 题号 一 二 三 四 五 六 七 八 九 十: M/ x/ c) T/ I9 f
得分 ( v: q5 O/ }1 P: ^$ a9 W
. U' O/ \# {- d) g* K
一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分). @% e7 K* |. M+ ]. `
v& ?2 j' N. K& q2 R
( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?
' K9 A7 X* ]! @3 U TA. 基址寻址 B. 寄存器间接寻址
- _6 T5 w6 A5 TC. 变址寻址 D.基址变址寻址0 ~" U7 X. e# e5 ~2 r, s6 o3 E
( )2.确定下列哪些数据在汇编语言中的表示是合法的?
7 s9 ~; j; L( k' o: C dA. 2 AND 3*5 B. 138Q
! U6 H. F4 X3 r3 A" bC. A3H D. HIGH AX
- e! k5 [3 V9 d- V) i7 x X( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?+ d" v/ s2 o1 D8 D9 N4 G
A. 00FCH B. 0098H
2 ?' v8 B2 m6 \8 ^5 e0 hC. 00FEH D. 0102H6 ]% p; j1 ^/ q- K
( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?
' |' ~2 v; t5 S2 I4 f% x2 q8 d A. CMP AX,BX B. CMP AX,BX, o0 v# `) }6 u6 c( @/ R
JNB OK JA OK: c' ]+ T# J# N% \
C. CMP BX,AX D. CMP AX,BX+ d5 _/ B/ P5 d3 ?4 f8 c
JBE OK JNC OK9 v% c4 e8 t5 A) W9 S% ?% \! Y
( )5. 下列程序段在语法上是正确的是?
) ~) Q6 |2 O' YA. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’
) O' L9 K) d0 C Y- [C. X1 DD ‘ABCD’ D. X1 DB 1234H9 l- u5 x0 n" }7 g, H- D
( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?
) O; r% e. o |7 J9 B1 x+ I; n A. 0,0 B. 0,1
5 e2 c+ O) L- D2 O: v" A: i2 tC. 1,0 D. 1,1
& j6 b4 D5 d6 x# _0 e- U( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?
- \9 D2 E. l& }) |# U5 r- _ A. DIV BL B. IDIV BL3 ~ ^ x6 Q5 Y+ p
C. CBW D. XOR AH,AH
6 P* [& H) L8 f6 J) A6 i/ \ DIV BL DIV BL0 s& c- y; `- k: K+ {; O$ z
( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的? 1 Y1 _* f1 w+ a7 b( c, T! |/ L
A. LEA SI,SUBR B. MOV SI,SUBR8 J) z/ _ ~& z+ {, h4 z
CALL [SI] CALL SI" g; t9 b$ S, ]5 R% t& e
C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR& p& X* E) a& W# v1 S5 ^2 G
CALL BX CALL WORD PTR[BX]4 D: n# c4 v0 h# p
( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?3 R6 D# |2 ~( ]. @. x9 m! i" w- z
A. 17H B. 12H C. 13H D. 10H?
7 V- N" s) S/ h) q9 \( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?$ s$ V7 W' T3 r/ _) F' `
A. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?: a+ {+ V6 V: I2 t# \1 D5 c
( G6 [8 s& w4 F4 A3 x
二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)8 o) v3 m, f5 N
1. MOV DS,CS ( )? 6. MOV CS,AX ( )?
% O7 @+ r% T. k3 K$ ]2 M6 X* r 2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?/ h0 O5 j: t O- [1 Z
3. POP AL ( )? 8. SHL AX,10 ( )?
8 H% ~4 ]. M+ s1 u! {: C 4. NOT 5 ( )? 9. IN AL,DX ( ). ?& k- k" [3 J) B
5. IN AX,200H ( ) 10. OUT 21H,AL ( )5 I2 ]! a6 S5 l: l$ \3 h
+ [. E5 O( Z; X# t6 C, D* n& L
三、填空题。(20分); ?5 K9 K6 F) N5 w, Q& {
1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
# y0 z; a1 D& x# a( C
e2 u; m. v7 g指 令 有效地址 实际地址2 C' @6 v) u3 R( S( ]% ?$ d4 e( p
MOV AL,CS:[SI-100H] 7 M7 _4 i" M9 p8 l
MOV AL,[BP+10H]
1 g) X' i( b/ {/ ^7 GMOV [BX+SI+100H],AL , ~8 t8 @9 K& M, d
g5 M, b5 |8 F( D
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)0 z+ T8 D# j# u
DATA1 DB -16,‘AB’5 q% c" F. o+ m" Y. i# q
DATA2 DW -16,‘AB’7 i& s% M$ {7 y
" ` k2 I) h) ?# A$ |7 U& N DATA1 DATA2& D" y0 d2 }7 U% `( b* j8 b5 W: w
* ^& k# G! e0 w, s2 x+ M+ m/ Z: `! J4 Y7 Y
' o! r: v5 C# i" c3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分)
% g% V1 c. N. g" C" F* `9 L5 XC>DEBUG3 d3 X5 F- a9 r) ~
-d 0:0% b& O/ [0 m- q3 K( b3 Z! V
0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 00
1 j9 w9 [' P2 W# ]: l# b( p0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0 9 z8 C7 W8 S9 Z! k0 \
0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0
( o+ \6 c& z5 @9 U0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00 5 a: \( C8 _4 ?( ^
0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD
3 g# P4 o' I& J( s% o: r4 B# A* |0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06 5 C3 M) Z8 q I
0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06 1 H, i! W) G% ^0 Z" S8 u( c
0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 1 Y7 ?& O: ], ~1 K. w+ ]
/ v! A$ |! N8 i, p4 F; }: q4.依据下述子程序说明文件把子程序补充完整。(6分)$ |6 m& M' K7 t7 x, ^# s
1)子程序名:MSHL;
3 P) N9 Z1 Z+ [3 a, s7 ?. g2)子程序功能:多字节数据逻辑左移一位;6 b1 q4 I: x0 I) W9 i
3)入口条件:数据低字节地址在SI中,数据长度在CX中;
4 D+ s* N; R6 P# W5 p/ q4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;2 S( L2 d$ \+ Q
5)受影响的寄存器:F。
* [* v# x. Y3 u& o/ a9 y+ A. q4 NMSHL PROC' x# A0 C5 Z" }) L' z8 y
PUSH SI. O J" w$ y c4 w
PUSH CX
V/ Y0 `7 }4 G0 N: i! u ( )
$ V7 g. q2 t( GMSHL1: RCL BYTE PTR [SI],1
* N+ S, {' ^2 Q7 e$ H0 | ( )- I: o- ~3 U5 o: W
LOOP MSHL1
) Z1 N# X! s8 ~3 _4 b POP CX
) a Z, s0 Z9 M# Q/ X% q% h/ T POP SI
/ t, K5 G% h2 B, r: X: Y/ g ( )6 Q* B( I; Y) H
MSHL ENDP
% \2 x- Y# O% j
/ n3 c5 q$ Z+ Y; [% Y- j" t2 h四、改错题。(10分)( P* V; }. z: E8 H( r( _
下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。5 `7 F1 ~2 x" i
要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。
" {; {+ P3 W# u" |7 B1. SEGA SEGMENT2 } q8 k. U, v2 U- i/ f# `
4. DAX: DW A0H
5 E! g2 ]& p- R+ s* k* @7 T8. DAY DB 1000H
! M' x) V* @+ P4 o' C2 P4 O4 e12. MAX DB 0,05 y1 B- }; [1 w1 P. f
15. SEGA ENDS# \, c" z8 [* s) k8 c( I6 H, I, W
18. CSEG SEGMENT
8 g9 k4 B, D2 Q$ g21. ASSUME CS:CSEG;ASSUME DS:SEGA
2 q. p* c. m2 o9 b$ r: ]3 ]" E25. BEGIN:MOV DS,SEGA
' l/ J% N% D* `0 Y) f# h27. MOV AX,DAX
$ ^: x: {& Q8 F. S29. CMP AX, DAY
+ x) g$ a8 c+ e& F6 x$ w' G/ Q33. JG XGY
& j' C! q. K5 R35. JZ ZERO
4 q. S) \& m( Z& K% `40. MOV AX,DAY, x5 j- D7 {, R# B6 F9 K0 o/ \
43. XGY: MOV MAX,AX& a1 ?; N k2 L" C/ p2 O
47. ZERO MOV AH,4CH; y7 i2 R# G% E. `+ L5 T. p6 i
49. INT 21, v, N: @4 q0 C2 G( u3 V; F) p$ V* p6 a
50. CSEG END
8 b- y' h6 K) M1 ~* J% c4 D. t; R56. END START
7 L, k0 R8 o( q: M* R. k2 V
! l9 v- u7 q" w6 n( S2 t0 X+ S五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段# f) \& f* \- M# F8 T+ {$ I
1. 将寄存器AL的高4位取反,低4位不变。6 [/ v( g+ g. A0 T; k3 s3 G
1 x' [- c6 u* D: O, W _ u
! A* b! v% q/ C3 H5 G7 [% ?/ i& K8 c* ~% g# I" `! Z4 Y* A s$ R
1 X7 c G! X# X7 G5 p9 S _ N# R2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。; H+ m n# L/ \+ `( R2 I
R/ s2 @7 Y8 d: ~( @# V E) w) N: a4 b2 d
; F, k- F% \5 @/ t
, F4 W! g- s2 A6 o' K4 |; Q* _6 u& f K: d5 W0 P- G N/ v- q
, y6 D3 v8 p3 J& K' c8 Y2 W
% {5 v' S* \/ C" D U
3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。
, k( T" t z+ l7 W$ B8 \# T
# E" s, g( `+ j, ^ D- v$ ?, ]4 q' ?2 K. ^
- c. w1 G- G* [& G
7 j8 V# ~$ u4 u: s+ E+ ?
8 z& U3 m' o$ x6 S9 |
. u$ r# M1 s# @% b1 H
) f2 m" v; O) h t4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。
) z% e# C; n, ~7 s" q
/ A5 y0 V* H1 }5 e
7 j7 Q' R# h; L/ T3 x1 P# } ^) Z8 S4 @" l$ W3 Q0 S
5 p/ k2 u% p# H
' O8 F! M3 l' h$ k; J n
2 C* J/ t" {* b
% R# x d A2 ?! u2 d* q5 m) q
% v8 T' V5 e! k
- a: J1 f) Y5 [$ X7 K8 L+ d
8 G1 K$ S7 A; {) s, O/ _6 q- Q4 ~+ A. g+ d4 g9 P
) L& k3 [" u& {+ n# m9 H3 K5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。
+ x* h5 v0 b1 Y2 T! M0 V2 u& A( {( C
7 I9 y: R7 R% l1 }* N
3 M3 Z! {, b: A+ _; L8 D3 l K9 L
/ o# A2 ~# ?8 z# X$ v' J* ^1 q+ s! e' ^' b7 s) B
v. k3 l7 f9 O) M: }
) `8 g" d& B; \5 _7 G4 ? c2 g
8 s$ n/ ~% M4 f" ^# F% k8 ]) V
0 v' g% ] j5 [( D* f1 v' f6 ]" e+ ~
( A6 H. q+ f* r! O* C8 y
; J l6 } a( Q5 s& x5 Q R$ a, Y! @' ]3 ~4 `! _9 @
) V& ^8 O* v& {$ @( U, `9 n
1 o: F. i" d+ V) K
) _2 k6 X: d! I* n/ I) m六、程序设计题。(15分)
& S- v# f7 T, B1 \1 z; L 已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。7 E4 Q9 P$ z! R8 c
( p" t' Q6 [% c( o4 q
% y+ z* \6 o: x B# [6 V6 P, O/ q2 B1 d0 ^
+ E3 A) {+ a) V8 o
) y9 ?: M _" X1 A7 W6 N) _3 l, h7 ?2 y; j% E, d! o3 S! c
. O& G4 J, S M) o
( [: E/ j' Z3 i" b3 p S l2 m0 o5 @ Y. r8 F p
, ^% x% [% p+ v ~$ V4 @
8 g( J, t2 @/ N0 Y1 b! s" X! ~; w
3 c% v1 J# e: _5 m# _
. c: {6 C$ {; n% P( H: P. c/ s+ k, X3 H& U& D# j. ^. n
- g0 f$ S- l( C4 u( i% B& `- D
+ M7 T9 m$ G X1 p4 U# |
) w, A* X4 B6 p! L# h/ H7 J7 L: h- f
5 x( ?; X4 j5 U2 _# d' S# z- e$ a# @0 Q& j9 q' |
* W% Z& ^( k3 z5 B6 ? n0 Q
# N7 {' m) x9 |: D5 W5 w4 r# B/ k
0 ^# q/ a' K; g# I
f' }- V+ F( O3 t. d" b
& p, i& O6 w' {' @0 C7 u" z9 ^
! n( q, @$ P( }4 Q# V. c2 P, t
- ^! c6 P/ H, Q! l/ x) ~+ U$ ^- H+ k* V% B k( K+ J6 Z" P0 ?
# E G* n* C7 a6 z* ^8 J0 i* @% x
1 ~( |3 z0 B! F9 b3 C |
|