|
东大17年10月清考《汇编语言程序设计》期末考核作业(资料)
. t% X8 o9 V- D+ a( L东 北 大 学 继 续 教 育 学 院; N( _7 z5 T" v8 l7 g
' ?+ X& v3 v+ r0 Z! {$ c8 O
汇编语言程序设计 试 卷(作业考核 线上) A 卷6 s6 V+ r! ^; l4 }+ t
学习中心: 院校学号: 姓 名:
" E6 |6 I% q Y9 O; k5 S$ z, @# ~- G4 S& u" P5 Y: K& M
(共 5 页)
. G+ y8 b O" \* X, B b) ~总分 题号 一 二 三 四 五 六 七 八 九 十2 ^1 E3 a: I$ E6 U' n& \: U5 Y Y
得分 $ o5 [4 R7 y8 }- L' L
7 Y) a2 l7 p) e5 G
一、单项选择题(从四个备选资料中选出一个正确的资料填在题干的括号内)(20分)
+ g4 q$ X0 y) @8 W0 ? p! F" f- Q, P, C+ S# _3 u
( )1. 指令MOV AL,[BX+100]的源操作数的寻址方式为?
8 E* l4 @6 Y8 m* ]$ ]' tA. 基址寻址 B. 寄存器间接寻址 $ I, C( M) Z& N; u7 `7 N, {
C. 变址寻址 D.基址变址寻址. Z/ E& k5 Y: V
( )2.确定下列哪些数据在汇编语言中的表示是合法的?
4 e4 ~8 z& x3 C5 X3 v) \A. 2 AND 3*5 B. 138Q - e. y" `) _6 w# a. j) |8 l
C. A3H D. HIGH AX* k, r% Q- m y, b5 O
( )3.若栈顶指针SP的值为100H,当执行完指令PUSH AX后,SP的值为?+ d4 W' t2 z" E+ L
A. 00FCH B. 0098H
' ~0 x& d, l+ QC. 00FEH D. 0102H
- Q V) J: J' D a3 x0 u+ e( )4. 已知在寄存器 AX和 BX 中分别存放着一个无符号数据,在满足条件 AX≥BX 时转到标号OK去执行,不能实现该功能的程序段是?! ~6 p1 v# {! @- G3 I
A. CMP AX,BX B. CMP AX,BX
( X; d. w8 o$ ?7 N1 Q JNB OK JA OK* u' o& K2 m6 S f _, X) K
C. CMP BX,AX D. CMP AX,BX
' I6 ?/ h1 z, m JBE OK JNC OK. n" ]/ d7 [# {
( )5. 下列程序段在语法上是正确的是?
1 I: @" B' d: z2 m$ rA. X1 DB ‘ABCD’ B. X1 DW ‘ABCD’
# K K5 @0 h k; K0 l) f9 V" SC. X1 DD ‘ABCD’ D. X1 DB 1234H1 M. k' Z/ }2 y# @% i5 e# t
( )6. 已知AL=67H,BL=34H, 则指令ADD AL,BL执行后,OF和CF的值分别为?1 L; A0 _7 d+ R# M7 b( t
A. 0,0 B. 0,1 ' b) j& [0 v& i' n$ M, a: n
C. 1,0 D. 1,1
$ _: j3 h$ d S1 q1 }( )7. 已知AL,BL中各存放一个无符号数,计算AL/BL的商,用下述哪个程序段?% T1 }% ]4 I# O
A. DIV BL B. IDIV BL
8 E; S0 @$ B8 P" T( q- p! {6 q C. CBW D. XOR AH,AH1 z2 p) @" b+ H1 o' P/ ^3 {. ]8 l
DIV BL DIV BL
) S9 o* E N; o+ |/ C0 M5 S" j( ) 8. 已知SUBR是一个属性为NEAR的子程序, 下述调用SUBR子程序的指令序列中,哪一个能实现调用SUBR的目的? B1 G9 M* q4 \( T
A. LEA SI,SUBR B. MOV SI,SUBR' s# ^# @ ?8 U2 j. L
CALL [SI] CALL SI! T+ _9 w& c- M& M1 c4 F g
C. MOV BX, OFFSET SUBR D. MOV BX, OFFSET SUBR
8 Z( m; q/ F4 o' \ CALL BX CALL WORD PTR[BX]
3 c6 l5 J; U8 f4 N; v( s* U( )9. 初始化8259A时,ICW2的值为15H,当IR2端有中断请求时,8259A送出的中断方式码是什么?
; k1 ~: k, f) ]8 _) x" y3 C* L% ~A. 17H B. 12H C. 13H D. 10H?# X" C% o2 _, n: J- O) G
( )10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR3上,主8259A和从8259A的ICW3应设置为多少?# r; f) |# J4 d5 D% i
A. 03H,08H B. 08H,03H C. 04H,03H D. 08H,08H?
5 S# n3 K/ `2 ]( T/ A' n9 \/ u" |( E9 c# N
二、判断题(判断每题正误,对的在题后括号内划“√?”,错的划“×”)。(10分)
! O5 @& [& b* y8 H9 v" \1 v; d 1. MOV DS,CS ( )? 6. MOV CS,AX ( )?% K9 D8 ~" T4 v0 h# _9 K
2. MOV AX,DL ( )? 7. XCHG 50H,BH ( )?7 u7 h( i4 u, [( U! e
3. POP AL ( )? 8. SHL AX,10 ( )?
( p4 Q. @) }1 j) C2 t- T/ @8 } 4. NOT 5 ( )? 9. IN AL,DX ( ); p' R( O: U" E- v5 h
5. IN AX,200H ( ) 10. OUT 21H,AL ( )$ o* |! Q9 h1 [% ^& h* s) k0 P
9 F" j& s+ X' Y8 I
三、谋学网(www.mouxue.com)。(20分)
; F8 o7 ^2 x; e1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
, {: b2 F0 E; e3 Q7 M% l
: d, ?, e1 k8 l; N+ o6 t+ r+ I指 令 有效地址 实际地址! W3 y% Q. q& V! O
MOV AL,CS:[SI-100H]
k$ m3 I" o& F! d5 s0 EMOV AL,[BP+10H] % F# G2 a1 ~0 |7 q0 R8 O7 P+ p
MOV [BX+SI+100H],AL 4 P8 x- H$ {9 J
3 j; \; f9 \" H- H
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(4分)
) X4 f" Z$ P, _ DATA1 DB -16,‘AB’
9 j5 s" R1 K, O. E DATA2 DW -16,‘AB’
N0 m* I' p5 u8 C: ?2 n' `1 N; K) G4 C/ ~) `0 G6 m
DATA1 DATA29 Q: V; R$ O$ `1 }1 j
, @* b) H5 d# h3 p% E% g* Y0 V" |
2 ^0 v, k @+ A! @
4 N2 w) t* |/ K/ z# Z, _6 m/ {3. 已知部分中断向量表的内容给出如下, 则方式码为10H的中断服务程序的入口偏移地址为( ),段地址为( )。(4分)! G- l+ Z `' j n O+ ?
C>DEBUG' ?$ V; i) p5 m9 f7 x% e5 S
-d 0:0
7 R$ X3 S9 L& U# N0000:0000 9E 0F C9 00 65 04 70 00-16 00 C1 08 65 04 00 00
8 U1 q7 I8 n7 }' h0000:0010 65 04 70 00 54 FF 00 F0-00 80 00 F0 6F EF 00 F0 $ C3 p- w0 d0 x& \: e* \
0000:0020 00 00 00 C8 28 00 C1 08-6F EF 00 F0 6F EF 00 F0
, e$ V3 }* e9 q: b0000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 C1 08 65 04 70 00
6 L; u) z6 }2 v2 u! ^3 N& Z0000:0040 07 00 70 C8 4D F8 00 F0-41 F8 00 F0 97 25 58 FD $ X6 J5 d @3 k
0000:0050 39 E7 00 F0 40 02 2D 06-2D 04 70 00 28 0A 76 06
. q. U8 V8 ^" [0000:0060 A4 E7 00 F0 2F 00 82 09-6E FE 00 F0 04 06 76 06
( J p# ~) h/ ?. ~& v7 t- D0000:0070 1D 00 00 C8 A4 F0 00 F0-22 05 00 00 C6 57 00 C0 ) j' Q" Z9 u+ D7 g
0 m C' R( V8 \* S* y
4.依据下述子程序说明文件把子程序补充完整。(6分)8 R! y8 s+ G+ w8 S0 u
1)子程序名:MSHL;, u% u/ r5 x. E5 Y
2)子程序功能:多字节数据逻辑左移一位;
9 M+ I1 K& m6 A+ q9 a7 c3)入口条件:数据低字节地址在SI中,数据长度在CX中;6 a) o$ B; h$ H C; G1 o
4)出口条件:移后数据低字节地址在SI中;CF为移位前数据最高位状态;
7 A! g1 e& p' D% [" p5)受影响的寄存器:F。
3 U7 d* L3 b& j1 WMSHL PROC" P, `* A/ V3 Y* |9 Z9 t
PUSH SI3 H$ X1 S6 s+ p7 e5 Y* w3 f4 m, o; l
PUSH CX
+ [+ x5 B* Z7 s/ f ( )
" e) z- u9 w+ q" X; w$ C& KMSHL1: RCL BYTE PTR [SI],1' u: i$ l, F; `8 ]% g7 _
( )
& H; l1 `; S* G1 s# p5 a& F7 W LOOP MSHL15 X6 f* S: }6 o
POP CX
7 T, B7 l. p7 t' ?% a: Z# I POP SI$ p$ q8 K5 L" J( o! E$ S
( )! p. p% {% X- _* ]( h
MSHL ENDP. ~' |- R) Q3 ]
& w" U* ]$ A3 a9 [" u四、改错题。(10分)
4 c6 {1 @: |5 b& b- ^- n下列程序有错, 请将它们找出并改正过来。已知程序欲完成的功能是从两个无符号数中选出较大者送入MAX单元, 若二者相同, 将MAX清0。$ U {+ Y1 R5 P8 ]2 i' w1 u5 h
要求:不必抄题,直接在试题上修改。在错误的部分下面划一条线,然后在本行的后面给出正确的资料即可。" M5 T) g3 i2 ?
1. SEGA SEGMENT* l$ K9 X8 H8 c" z) b1 j0 t
4. DAX: DW A0H
- A- d c. E8 E. G7 T! s8. DAY DB 1000H
- F& f# j5 o% A; ^# `12. MAX DB 0,0) R9 t- t. s/ y6 f1 B* A
15. SEGA ENDS4 G5 H( x5 S8 `, s
18. CSEG SEGMENT- j+ L, e" H8 v4 t& Q" w- E
21. ASSUME CS:CSEG;ASSUME DS:SEGA: O" t! H0 m L6 C+ K" C
25. BEGIN:MOV DS,SEGA ; O4 [* R' u1 S
27. MOV AX,DAX) z; [8 H4 `: Z' F7 `
29. CMP AX, DAY
# i4 Z4 h0 s& i. c- Z" i/ _# S33. JG XGY- z; ]6 ^8 m& {' K' ~/ n) q2 I' C
35. JZ ZERO
2 p/ j. `$ J* m7 `5 C40. MOV AX,DAY
9 `0 O. |, z1 e2 x7 r; t43. XGY: MOV MAX,AX6 i$ h+ Y$ F& M9 L/ z4 M3 K
47. ZERO MOV AH,4CH! F5 M, H4 h! o6 s4 A7 \) r! P& d
49. INT 21+ B7 @: O. f! i4 E
50. CSEG END1 W- O! w% X& g5 e
56. END START
u6 K! H0 u" h E* ?/ S; N/ x- v* j
五、谋学网(www.mouxue.com)(25分):用尽可能少的指令编写完成下列功能的程序段* S! }5 s. ^2 L# q
1. 将寄存器AL的高4位取反,低4位不变。7 m: }4 ^, g' E
# W1 i9 N; e4 }4 L! B) ~9 r( s/ x4 B; c ?' ~1 U3 @2 K k
' F$ p9 W; a% w5 X" R+ P5 ]. J3 j* x+ c% @
2.将数据段SI指向的连续10个字节单元的内容传送到附加段DI开始的连续单元中。7 R: g; v9 X) J& p8 \7 u6 k# P+ z
5 C3 i6 N X# ^: h. K
8 r, J# m3 | \6 h" O7 R
& o* i6 T. {' B9 u" ^1 b, U
; q7 a! v1 E7 c, c9 P" I& T" P) _; H9 O( o! r$ P K
8 a9 n0 v( V7 M# i w0 H
0 ?* I q& R- n4 J5 P/ N' P3.将寄存器AL的第i位清0,其它位状态不允许改变,已知i在CL中。
9 j* S/ i I# M2 h) _ [9 L+ C2 h; \8 N( V* M6 Y
, W" @- ~: C3 ^! Z
$ C8 N7 Y3 W$ T8 F) t
" d, v. T8 ~* ]2 m" O. P4 {
+ ^% u) |& c) v) l \
$ R+ I& v6 o( c, o" B. l+ @2 r
- V5 }: F3 ~! A D" o4. 已知AL,BL中各存放一个带符号数,如果两数同正,则将AH清0;如果两数同负,则将AH置1;否则将AH置全1。; k% ?2 ~8 J8 n9 w4 G9 R
0 ]' y9 S- ` d$ B& u' q
4 j6 T! U8 W0 b
* ?# h% m, ?+ M( p0 S; W9 U& }+ X4 I$ S7 C# D% x
9 A" X; N+ G$ `! J8 e% D6 y
! j8 p; o+ }; c/ h* b' ~- |# ~! T5 f7 A9 z8 F4 I
# C9 h# a q8 h2 W' a& K
1 b3 M- U/ e) a8 x! o
; O5 A$ N6 N% b# W8 `7 T+ `/ K o' W. L
9 f. s8 A8 l1 f4 y# x5.已知中断服务程序的入口地址为SEVER,对应的中断方式码为40H,则将其入口地址写入中断向量表的程序段。: O7 Z- T; y1 B; ^& h% h) T" t% p$ _
- X3 ` c) b( L6 s2 P% o5 P7 N3 \; q7 p
& P( T7 i( m7 n6 [; _
7 \5 H) d6 b5 o+ L9 i
' ]+ O% e' b# {2 \
" w6 Y; B' W1 M+ e* e. Y# t; Y4 v+ t6 F
' F8 P- U" [0 Z9 E% s$ f/ D, g
+ V0 L1 ^& S* @1 @1 j$ t6 g8 g4 _: l) ~4 G P) |) E
4 J E9 a' r1 z( h9 _# a" V
. q+ Z7 L: H5 |+ Z6 [" Y' T4 g d ~; l" s* R) \
8 i3 E* f Y" [! p; A9 g7 d4 x, {9 S D( H! C, ~
R# J: |' j. N- X! O六、程序设计题。(15分)
6 ?( l: `* G/ r2 V 已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。编制程序求出该组数据的最大值,并将其存入MAX单元。
& m1 C, D+ N! A4 \$ q
3 G& S6 l5 A4 A/ L* m
. o; t9 D- p5 m" K/ l; i- b2 E3 s$ J& X% d, U
. a/ w+ `9 Z1 s3 L
$ \& N3 q' K( m# m8 I
$ V \7 b5 v) S; ?8 j
+ w) C' h. N" `& p" k: _( k! F
. x K1 M1 Q' }3 n( i3 Y' _5 l) D) ?' Q9 Q& M0 w
) T% G* ?# }' {1 F
; ~! \/ T$ V# Y7 \ W# X7 N5 i' |2 p) x( Y9 C4 G( |! ~; b8 N& _
" k$ E. s* Z( s; u, c/ B
) R+ q' O; i5 |
4 T7 }$ `- @7 x( o/ Z, Q3 \
- E- z* E& L5 S' u" d8 m; { |
|