|
东 北 大 学 继 续 教 育 学 院
& w# K# Z* _9 u8 H. {8 g5 r K6 M, e7 i" g
汇编语言程序设计 试 卷(作业考核 线上) A 卷) x4 a X$ X% Q3 ?; i. N
学习中心:
/ c) h5 t9 b7 A5 |$ t院校学号: 姓 名:
3 y8 D' Q% s& T9 B; `: l. y; V$ g) n7 W& ~
(共 6 页)
5 _7 q% X8 t0 Q- ]9 N总分 题号 一 二 三 四 五 六 七 八 九 十
$ b" [* ?" G; l C3 g, T6 A 得分 # K. s% |+ r- G- t
' z2 H# ?3 G- P/ J) d8 y一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分)/ ^) N- ^$ G7 [0 X9 @ |* S
. l( q/ }# P# K2 Q% H( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?: t1 a' Z- F1 k, E M2 J$ B
A. 基址寻址 B. 寄存器间接寻址 # { D3 ?4 `# R! c
C. 变址寻址 D.基址变址寻址
, \/ m& f7 J; f& O( )2.确定下列哪些数据在汇编语言中的表示是合法的?1 E& z% d" [& S# N0 p3 s
A. 2 AND 3*5 B. 138Q * W A5 Y/ @3 M
C. A3H D. HIGH AX( z/ b( N4 I" a3 o
( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?
2 @" W9 ? {; PA. 00FCH B. 0098H
& j: e6 \7 g8 C4 Q" ^0 R/ x |C. 00FEH D. 0102H: L6 ?" J- Y6 U+ O- O+ Y2 l) J% z
( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?
; s# ~9 ~+ N j- l- H% H4 ~, L A. CMP AX,BX B. CMP AX,BX: D( B P3 l5 p7 c' D
JNB OK JA OK) z( k8 Y' X; I
C. CMP BX,AX D. CMP AX,BX
, Z% K, s, Q. j4 J+ c0 G$ m n, d JBE OK JNC OK
9 P- Z$ i+ F/ N9 W/ [$ D Y, L8 c( )5. 下列程序段在语法上是正确的是?
. z5 \2 g# R+ D$ mA. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’: O h2 u2 H; b8 H3 T0 a/ \: q
C. X1 DD ‘ABCD’ D. X1 DB 1234H
/ n4 B+ @5 n6 ]9 |9 ~( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?9 p8 p8 C6 N0 K' C; V/ v
A. 0,0 B. 0,1
$ D1 A3 H1 A0 C- G% a( K# j; NC. 1,0 D. 1,1
: C8 Y. i+ O8 Y: ^/ E" n( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?% _, ~5 E+ G$ P1 l/ O+ q E. Z
A. DIV BL B. IDIV BL
, g+ E# v* @$ V& z6 P1 G9 Q1 m C. CBW D. XOR AH,AH) i' J' W' C) G' e
DIV BL DIV BL2 h' L i( @& U; J
( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的? + |4 E; q, a6 w
A. LEA SI,SUBR B. MOV SI,SUBR+ \% Z/ x/ K) o7 c) x' a
CALL [SI] CALL SI
: p1 ^. V( \* U0 k, t- _% U C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR% A8 o( K/ t2 H& U2 i$ T
CALL BX CALL WORD PTR[BX]
; H) l9 X% B! }( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?& k/ a" M- }7 n4 G% j8 y) X' }+ S
A. 17H B. 12H C. 13H D. 10H?7 a! D. A& _9 [
( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?* F6 ?, y* @# d7 n, A) M+ {
A. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?- ]! g) Z# h; b; ?' W
) E6 J0 S. N+ u二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)/ R8 z1 }$ P1 z5 q7 x6 b; j
1. MOV DS,CS ( )? 6. MOV CS,AX ( )?
0 U2 @- u+ O4 U. ` 2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?
6 ^" I' N. }7 v 3. POP AL ( )? 8. SHL AX,10 ( )?
8 C, r6 a% ?1 o& h( o 4. NOT 5 ( )? 9. IN AL,DX ( )
" [' L3 Z' y# s6 m) Z+ o5. IN AX,200H ( ) 10. OUT 21H,AL ( )8 {4 i8 u3 z2 e: x4 a% C
8 V7 L/ O5 K4 y) X
三、填空题。(20分)9 Y7 G% m/ D9 o! @% K
1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
* g' ^2 h" a; e1 N5 h* b, t, \6 `
9 r, s# ~& e: n指 令 有效地址 实际地址( B+ H# F, Q% w# c$ E
MOV AL,CS:[SI-100H]
/ q H* r9 \7 H% A5 [9 qMOV AL,[BP+10H] ; t0 r: h0 \) W) h+ j
MOV [BX+SI+100H],AL # O; i, ^# j0 j' m
# Q. m( l+ \% ~$ M' D! c) y5 q3 v4 x2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)
% _3 d% F+ i$ P( N+ O5 ^ DATA1 DB -16,‘AB’
' p$ F/ r) R( [4 K9 F DATA2 DW -16,‘AB’$ M- b3 K# X9 \
' P* W- X8 `0 I' r U/ M- u DATA1 DATA2* G0 |) E; y/ m) O: M
# G, _: x, b! g* R3 V" A _ Z, ]/ t. A
& y" x# I1 O$ H; z& U& R$ C3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分)8 Q. p, {' o: e" O# i! _
C>DEBUG
7 Y, c, J' l2 H6 y. \3 X' b-d 0:0
- X$ a( U U8 k/ Q$ ]0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 005 f! ]/ E8 i; A. O2 w8 X/ w) t1 V
0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0 6 r0 g7 T" q+ f" D D$ ~
0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0 p* C/ u8 h* O& E, M4 m& \' L
0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
' p8 R7 C/ `# d% U3 j- `0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD 3 ?% W; W! J* H* u+ @8 ^& @- l
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06 , L- \ ]2 M2 ^5 J2 H. h
0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06
Z4 J0 c7 T; q; t4 _, ~' {0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0
; K7 O4 j- P Z# h9 ]9 r+ r, w! V$ l: R- k5 W# t4 @
4.依据下述子程序说明文件把子程序补充完整。(6分)- _1 s8 E$ @6 a
1)子程序名:MSHL;# n% S5 \8 p6 }5 p7 E
2)子程序功能:多字节数据逻辑左移一位;
/ E2 E% O! \- G0 @; [" ]1 N3)入口条件:数据低字节地址在SI中,数据长度在CX中;1 b9 V6 }5 \. S0 h) t7 e
4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;
1 C) I( H6 Q7 w" h- X0 \5)受影响的寄存器:F。
s2 V, |; H# R' |/ p! A, f" yMSHL PROC
! p" E! g. h: Q! P t PUSH SI
8 s# n# q/ q1 F1 W' e. i- ?4 c% U0 } PUSH CX- G, E4 x" i, \9 V l* M+ o2 b) @
( )2 S' F1 B3 W% q' A
MSHL1: RCL BYTE PTR [SI],1
2 b( a! x" S$ J, Y( \6 S ( )
! K! O3 g# G, W5 \: R$ v LOOP MSHL1! b" g# `7 u9 t4 Y
POP CX8 v' W1 H# Z5 g2 O) Y5 G
POP SI
$ \" {+ H* D' E, W ( )
0 l) b4 J, ~6 d$ g& X2 O' sMSHL ENDP
& S3 k! {- L" f7 g8 M# | \+ J# f! ^0 w5 g9 \
四、改错题。(10分); W# U" A! x* [: Q: f( T- q
下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。
. i7 [3 e! Z# u- u1 @要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。
/ S8 m& K% C6 h, e. U+ t1. SEGA SEGMENT; ~0 ]. n+ |+ e
4. DAX: DW A0H% M @# [. d u' {- D
8. DAY DB 1000H2 b4 j* S5 K/ t# ]7 T/ a! @
12. MAX DB 0,0: n2 q$ L7 c5 c5 W
15. SEGA ENDS
, Z' a) f0 o6 m% ]* C18. CSEG SEGMENT
3 Y Y2 a1 o h8 \3 b21. ASSUME CS:CSEG;ASSUME DS:SEGA
9 X. X7 Q2 [7 k! T* H+ F' t- Y25. BEGIN:MOV DS,SEGA
6 J% B6 J o% h, k* m2 w27. MOV AX,DAX9 K! b) E, L3 z* m! I$ z
29. CMP AX, DAY
3 d( b6 |- m) ^) Q33. JG XGY
6 b& m2 D* r" D+ k35. JZ ZERO
, f3 d- l4 x' x9 D40. MOV AX,DAY
, i2 h# F/ Q6 ]8 U- i6 A K43. XGY: MOV MAX,AX r" z: S' h$ B% M
47. ZERO MOV AH,4CH
& _* j! F$ R9 J. O) l49. INT 21+ |, }2 ~: r( B. b* M& V
50. CSEG END
( K0 K0 U& n1 _ t7 q56. END START' y" u: S9 R8 N( d6 r9 e# t' N$ O
2 @6 s1 g7 \2 F4 Z五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段
: a5 T" O/ ?. Y, A' M2 i' ]1. 将寄存器AL的高4位取反,低4位不变。% m# |7 z; c( {4 O0 i. N& l' o$ {
' q O$ \) ]& ^* E
' ^- Z* R5 ]3 c' r, t
: l, a& h3 {; E$ \2 {" w c; Y4 V2 B) E- Z- m; i. W
2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。' l2 x) v/ y/ G/ T" r H# q. M
u; h; R# a6 x% x- i6 C
! r$ c6 c/ x# Z J
; Q m5 O8 G. V) S- C
9 X' S7 N5 `) n/ B7 H3 ?. Z7 g% P8 c; V
- L0 d" M. F) o- w4 @& y
- F% _. O- y- U, m) ^$ j( I3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。% m( ^# Y! u9 \, E1 U: t( s
! C" c" b H9 v- N2 ]
) e3 E+ k/ b5 f
5 h" N% }9 W* J$ @; H
5 N+ u/ `" L0 e$ R3 E6 f
9 I7 n! C* Q+ J; ^7 j2 ?+ v$ g4 b5 R# P$ R( `! q% _
4 k* ^: v/ j6 T3 Y' l i4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。
& w+ h6 v, s" y5 e4 j
- } d9 @; _5 G9 F( [; Z) w$ m# O0 `4 U( F0 F' w( I2 v. ^7 ~. v
9 A; r( y P- I: c2 q
/ h" Q, v' O! K6 \9 A& R
( g7 O1 c& E% |" R, c& b2 }) z! V. ^8 G! C; Z
5 B0 p9 E' M3 o$ Z( ^9 d: q, e2 y l" r/ |7 }
, P. S5 t6 `" [ G. g$ e3 f5 U* {+ v5 T7 R4 F3 J
% b( [- m1 x( q, u& N8 U
# W" ^& n0 u' L% ~, d8 B- C5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。8 z1 A1 d. H) P) A
2 r9 m7 G+ B* X+ C3 L
5 N8 L* C; z8 f8 w: Q! V3 s7 Y" B! c* o" I7 o
A+ r$ c }2 _ [2 |
' V$ R2 r0 j P4 N4 [7 V% ]
' b$ N( E/ D3 N9 o3 \4 Q
5 o% y9 V$ F/ P# I/ M& B# }+ m4 g) J' W* }
( k9 r6 A& D9 |& b
! ^- x4 L' H5 ]1 Q% |) b, e1 }6 B- w! f5 j* K/ e/ z
6 b8 n9 q. Q9 \; d. f/ E$ G
9 \& c. u$ f, {9 D, C& V& f% N3 ~
. h& l. P- G1 g* r) Z9 v6 M) S& E' b2 L- N: G4 t6 l5 K( h( i/ e* T9 j
六、程序设计题。(15分)3 v6 _4 C7 b5 ]+ h0 r& E. b. ^, Z
已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。
+ Z0 O( C+ i% Q8 I. R' b; V8 l# i) j3 k- n5 {! }+ g
" W& E: v, e) b6 _
! ]+ @0 A, D0 R r1 t5 o0 j; x. B- {7 @0 |# @) e; o, g4 j7 l+ B
4 ^* E9 u, o: X. l9 {# Q& @6 M _6 q
) k2 S( B- }1 Y v' L- D) S& H
+ x$ J# I9 f3 n% E( ] Q( z/ X7 Z8 r& i: c
/ F6 k+ L* \: P# ?/ c
* W& M f0 k% Y" }6 @2 J* Q8 y6 y& d m. l
6 ?8 u9 m# d0 K8 q% W, O' u4 l
& K, n( ^" n0 f" Q% [. R' d1 @- _0 l5 t. d! z4 V
; e) T* R& J6 q) ]7 |2 p! e) Y5 T& }
" w: U6 u" ]3 p4 B
" F+ g/ U* C7 Q, f" W- y. a' }+ s2 E: e0 K9 K& n7 N+ f& U% q
+ _4 J+ e; [0 F! a; ]0 c( K
/ }- i- {( E+ _3 o
' q* `! y. v! o( D1 |( M
2 D2 {: i: F3 K& n
6 G# i* G( f% Y) {. W4 j' \/ z
- D7 h6 T r9 H! g2 C
4 D( z. L) `1 f0 g; P/ z- q& ]. A3 G
3 a. A& p* g* h9 Z9 Q+ ~; R# `+ k: t: E- m8 ]2 W
|
|