1、1. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 12F8:0100 1A2F:0103 1A3F:0003 1A3F:A1FF4. 自 12FA:0000 开始的内存单元中存放以下数据(用十六进制形式表示):03 06 11 A3 13 01,试分别写出 12FA:0002 的字节型数据、字型数据及双字型数据的值。2. 从右边的说明中为左边的术语选择正确答案,并把答案填入括号中(用字母表示) 。 CPU ( ) A保存当前栈顶地址的寄存器 IP ( ) B以后进先出方式工作的存储器空间 SP ( ) C把汇编语言源程序翻译成机器语言的系统程序 堆栈 ( ) D存储程序、
2、数据等信息的记忆装置 存储器 ( ) E指示下一条要执行指令地址的偏移量 汇编语言 ( ) F分析、控制并执行指令的部件,由算术逻辑部 件和寄存器组等组成 机器语言 ( ) G能被计算机直接识别的语言 段寄存器 ( ) H用指令的助记符、符号地址、标号等符号书写 程序的语言 连接程序 ( ) I用汇编语言书写的程序 汇编程序 ( ) J保存正在运行程序的当前段起始地址的寄存器 运算结果标志 ( ) K把若干个模块连接起来成为可执行文件的系统 程序 汇编语言源程序 ( ) L记录运算或操作结果的标志3. 分别指出下列指令中源操作数和目标操作数的寻址方式。 MOV BX,12 MOV AL,128
3、 MOV BX,DX MOV DS,AX MOV VAR,8 MOV 1000H,DX MOV 6BX,CX MOV AX,BXSI MOV TABBPDI,AL4. 在 80X86 系统中,设(DS)1000H,(ES)2000H,(SS)1200H,(BX)0300H,(SI)0200H,(BP)0100H,VAR 的偏移量为 0060H,若目标操作数为存储器操作数,请计算目标操作数的物理地址是多少? MOV BX,12 MOV AL,128 MOV BX,DX MOV ES:SI,AX MOV VAR,8 MOV 1000H,DX MOV 6BX,CX MOV BXSI,AX MOV 6
4、BPSI,AL5. 设(DS)2000H,(SS)3000H,(CS)1200H,(BX)0300H,(IP)0100H,指令标号 LAB 的偏移量为 0060H,(20300H)50H,(20301H)01H,(20306H)0BH,(20307H)05H,试确定以下 JMP 指令转向的物理地址是多少? JMP BX JMP 6BX6. 设 2000H:0100H 单元有一条两字节的 JMP SHORT LAB 指令,若其中的位移量为: 60H 80H 0E0H试写出转向目标的物理地址是多少?7. 写出以下指令的执行结果: MOV AX,3000H 与 MOV AX,3000H MOV AX
5、,MEM 与 MOV AX,OFFSET MEM MOV AX,MEM 与 LEA AX,MEM8. 指出下列指令的错误: MOV AX,BX MOV AL,1280 MOV BX,9 MOV DS,1000H MOV VAR,BX MOV M1,M2 MOV 6,CX MOV AX,SIDI MOV CS,AX MOV BX,OFFSET VARSI 9. 自 BUFFER 单元开始连续存放着两个字型数据,编程序求它们的和,并把结果存放在这两个数据之后。10. 写出把首址为 BUF 的字型数组的第 4 个字送到 AX 寄存器的指令,要求使用以下几种寻址方式: 直接寻址方式 使用 BX 的寄存
6、器间接寻址方式 使用 BX 的寄存器相对寻址方式11. 设(DS)1000H,(BX)0300H,(SI)0002H,(DI)0100H,自1000:0300 单元开始存有以下数据(用十六进制形式表示):12 34 56 78 90 AB CD EF,试说明下列各条指令执行后目标操作数的内容。 ADD BX,12 MOV DX,0300H SUB BYTE PTR BX,8 MOV AX,BXSI MOV CX,5BX MOV DX,4BXSI12. 写出执行以下二进制运算的指令序列,其中 X、Y、Z、W、R 均为存放 16 位带符号数单元的地址。 Z (ZX) W Z W(X10)(R8)
7、Z (WX)/(Y4) ,余数送 R。13. 写出执行以下十进制运算的指令序列,其中 X、Y、Z 为十进制数的 ASCII值。 Z (ZX) Y Z Z (XY)(ZY)14. 编程序使: 使 AL 的各位变反。 BX 寄存器低四位置 1。 AX 寄存器的低四位清 0。 使 CX 寄存器的低四位变反。 用 TEST 指令测试 AL 寄存器的位 0 和位 6 是否同时为 0,若是则把 0 送 DH寄存器,否则把 1 送 DH 寄存器。15 下列语句各为变量分配了多少字节? N1 DB 5 N2 DB 123 N3 DB 123 N4 DB 80,?,80 DUP (0) N5 DW 1,2,3
8、N6 DD 6,100 N7 DD N3 N8 DW N4 N9 DW N4+216 对于第 10 题,若 N1 的地址为 1470:0000,其后的变量依次连续存放,试给出各变量的偏移量。N7N9 变量的值是多少?17 如果定义了如第 10 题所示的变量,下列指令执行的结果是什么(若语句正确,则给出执行结果;若不正确,说明错误原因)? ADD N1,10 MOV AL,N2 SUB N3,N2 MOV AL,N3+2 LEA DX,N4+2 XOR N5,0FH MOV N4+1,CX AND N1,01234H NUM1 EQU 89ADD NUM1,10 NUM2 EQU 100NUM2
9、 EQU 120 18 假设有下列数据定义语句: M1 DB 10 M2 DW 2345H M3 DD 987865H试写出汇编程序对这些语句汇编后所生成的值(例如 M2 单元、M21 单元的内容) 。 19 有以下程序片段,试问汇编后符号 L1 和 L2 的值各为多少?BUF1 DB 1,2,3BUF2 DW 5,6,7L1 EQU BUF2L2 EQU BUF2BUF120. 指 出 下 列 各 指 令 中 源 操 作 数 和 目 的 操 作 数 的 寻 址 方 式 : MOV BX,WORD PTR2200H AAA JMP 2200H LEA DI,2100H MOV BX+SI+8,
10、 BX 解 答 : MOV BX, WORD PTR2200H源 操 作 数 : 直 接 寻 址 ; 目 的 操 作 数 : 寄 存 器 寻 址 AAA源 操 作 数 : 寄 存 器 寻 址 AL(也 称 隐 含 寻 址 ); 目 的 操 作 数 : 寄 存 器 寻 址 JMP 2200H程 序 转 移 段 内 直 接 寻 址 方 式 LEA DI,2100H源 操 作 数 : 直 接 寻 址 ; 目 的 操 作 数 : 寄 存 器 寻 址 MOV BX+SI+8, BX源 操 作 数 : 寄 存 器 寻 址 ; 目 的 操 作 数 : 基 址 加 变 址 寻 址21. 若 AX=0ABCDH
11、, BX=7F8FH, CF=1。 求 分 别 执 行 8086 CPU 指 令 ADD AX,BX ADC AX,BX SBB AX,BX NEG AX AND AX,BX OR AX,BX XOR AX, BX IMUL BL后 , AX 寄 存 器 中 的 内 容 , 并 指 出 标 志 寄 存 器 SF,ZF,AF,PF,CF 及 OF 的状 态 。解 答 AX=2B5CH, SZAPCO=001110B AX=2B5DH, SZAPCO=001010B AX=2C3DH, SZAPCO=001001B AX=5433H, SZAPCO=001110B AX=2B8DH, SZAPCO
12、=00X100B AX=FFCFH, SZAPCO=10X100B AX=D222H, SZAPCO=10X100B AX=3283H, SZAPCO=XXXX11B22. 若 AL=78H, BL=87H, 求 执 行 指 令ADD AL,BLDAA之 后 , AL ?、 标 志 AF ?、 CF ? 若 执 行 指 令 SUB AL,BL 与 DAS 后 , AL ?、 标 志 AF ?、 CF ?解 答 AL=65H, AF=1, CF=1。 AL=91H, AF=0, CF=1。23. 指 出 下 列 指 令 中 哪 些 是 错 误 的 , 并 指 出 错 在 何 处 ? MOV DL
13、,DX MOV ES,2000H SUB BX,SI ADD AX,BX+CX XCHG DS,2400H DEC 15H IN AL,DX OUT 300H,AX 解 答 错 , DX 不 能 作 为 间 接 寻 址 的 寄 存 器 。 错 , 立 即 数 不 能 直 接 送 给 段 寄 存 器 。 错 , 两 个 存 储 单 元 间 内 容 不 能 直 接 相 减 。 错 , CX 寄 存 器 不 能 作 为 变 址 寄 存 器 。 错 , 不 允 许 段 寄 存 器 与 存 储 单 元 内 容 进 行 交 换 错 , 减 1 指 令 不 能 对 段 寄 存 器 直 接 操 作 对 错 ,
14、 输 出 指 令 的 地 址 若 是 16 位 , 必 须 用 DX 间 址 。24. 下 列 程 序 段 执 行 后 AX=?设 数 据 段 有 : TABLE DW 100,200,300,400ENTRY DW 3代 码 段 对 DS 初 始 化MOV BX,OFFSET TABLEMOV SI,ENTRYMOV AX,BX+SI执 行 后 AX=2C0025. 将 AL 中 的 8 位 二 进 制 数 按 倒 序 方 式 重 新 排 列 , 即 AL 原 来 为D7D6D0, 倒 序 后 AL=D0D1D7。参 考 答 案MOV CX, 8L: SHL AL, 1RCR BL, 1LO
15、OP LMOV AL, BL26.若 起 始 地 址 偏 移 量 为 2000H 的 内 存 单 元 存 放 有 100 个 ASCII 码 字 符 ,现 给 这 些 字 符 添 加 奇 偶 校 验 位 (bit7), 使 每 个 字 符 中 “1”的 个 数 为 偶数 , 在 顺 序 输 出 到 地 址 为 100H 的 端 口 。解 答MOV SI, 2000H MOV CX, 100MOV DX, 100HNEXT2: MOV AL, SI ;取 字 符 串 中 字 符 送 ALAND AL, 0FFH ;改 变 标 志 位JPE NEXT1 ;“1”的 个 数 为 偶 ,bit7 不
16、变OR AL, 80H ;“1”的 个 数 为 奇 ,bit7 变 为 1NEXT1: OUT DX, ALINC SILOOP NEXT2MOV AH, 4CHINT 21H27. 若 SS=1000H, SP=2000H, AX=1234H, BX=5678H, FR=2115, 试 说 明执 行 指 令PUSH AXPUSH BXPUSHFPOP CXPOP DX之 后 , SP=? SS=? CX=? DX=? 并 画 图 指 出 堆 栈 中 各 单 元 的 内 容 。解 答 : SS=1000HSP=1FFEHCX=2115HDX=5678H栈 中 各 单 元 内 容 如 下 所 示 :地址 RAM11FFAH 211511FFCH 567811FFEH 123412000H