微型计算机原理与接口技术(第二版)习题参考解答

上传人:E**** 文档编号:118221439 上传时间:2019-12-11 格式:PDF 页数:12 大小:389.25KB
返回 下载 相关 举报
微型计算机原理与接口技术(第二版)习题参考解答_第1页
第1页 / 共12页
微型计算机原理与接口技术(第二版)习题参考解答_第2页
第2页 / 共12页
微型计算机原理与接口技术(第二版)习题参考解答_第3页
第3页 / 共12页
微型计算机原理与接口技术(第二版)习题参考解答_第4页
第4页 / 共12页
微型计算机原理与接口技术(第二版)习题参考解答_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《微型计算机原理与接口技术(第二版)习题参考解答》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术(第二版)习题参考解答(12页珍藏版)》请在金锄头文库上搜索。

1、微型计算机原理与接口技术(第二版)习题参考解答微型计算机原理与接口技术(第二版)习题参考解答 一、一、8086的寻址方式和指令系统的寻址方式和指令系统P120 1. 分别说明下列指令的源操作数和目的操作数各采用什么寻址方式 dec src (1) mov ax , 2408h ; 寄存器寻址 立即数 (2) mov cl ,0ffh ; 同上 (3) mov bx , si ; 寄存器寻址 寄存器间接寻址 (4) mov 5bx , bl ; 寄存器相对寻址 寄存器寻址 (5) mov bp+100 , ax ; 寄存器相对寻址 寄存器寻址 (6) mov bx+di , $ ; 基址变址寻址

2、 立即数 (7) mov dx , es:bx+si ; 寄存器寻址 基址变址寻址 (8) mov valbp+di , dx ; 基址变址相对寻址 寄存器寻址 (9) in al , 05 ; 寄存器寻址 立即数 (10) mov ds , ax ; 寄存器寻址 寄存器寻址 2. 已知:DS1000H,BX0200H,SI02H,内存 10200H10205H 单元的内容分别为 10H,2AH,3CH,46H,59H,6BH。 下列每条指令执行完后 AX 寄存器内容各为什么? (1) MOV AX , 0200 ; 执行后,AX0200H (2) MOV AX , 200H ; 执行后,AX

3、2A10H (3) MOV AX , BX ; 执行后,AX0200H (4) MOV AX , 3BX ; 执行后,AX5946H (5) MOV AX , BX+SI ; 执行后,AX463CH (6) MOV AX ,2 BX+SI ; 执行后,AX6B59H 3. 设 DS100H,ES200H,SS3500H,SI00A0H,DI0024H,BX0100H,BP0200H,数据段中变量名为 VAL 的偏移 地址值为 0030H,试说明下列源操作数字段的寻址方式是什么?物理地址是多少? (1) mov ax , 100h ; 直接寻址, 物理地址10100h (2) mov ax ,

4、val ; 直接寻址, 物理地址10030h (3) mov ax , bx ; 寄存器间接寻址, 物理地址10100h (4) mov ax , es:bx ; 寄存器间接寻址, 物理地址20100h (5) mov ax , si ; 寄存器间接寻址, 物理地址100a0h (6) mov ax , bx10h ; 寄存器相对寻址, 物理地址10110h (7) mov ax , bp ; 寄存器间接寻址, 物理地址35200h (8) mov ax , valbpsi ; 基址变址相对寻址, 物理地址352a0h (9) mov ax , valbxdi ; 基址变址相对寻址, 物理地址

5、10124h (10) mov ax , bpdi ; 基址变址寻址, 物理地址35224h 6. 指出下列指令中哪些有错?错在何处? (1) mov dl , ax ; 错,类型不匹配 (2) mov 8650 , ax ; 错,目的操作数不能为立即数。 (3) mov ds , 0200h ; 错,不允许对段寄存器赋立即数 (4) mov bxl , 1200h ; 错,不允许 2 个操作数全为内存操作数 (5) mov ip , 0ffh ; 错,ip 不允许为目的操作数 (6) mov bx+si+3 , ip ; 正确 (7) mov ax , bxbp ; 错,bx 和 bp 不能

6、共用 (8) mov al , es:bp ; 正确 (9) mov dl , sidi ; 错,si 和 di 不允许共用 (10) mov ax, offset 0a20h ; 错,立即数没有偏移量 (11) mov al , offset table ; 错,类型不匹配 (12) xchg al , 05h ; 错,xchg 指令的操作数不允许是立即数 (13) in bl , 05 ; 错,in 指令的目的操作数只能用 al (14) out al , 0ffeh ; 错,0ffeh256,只能用 dx 间址 7. 已知当前数据段中有一个十进制数 09 的 7 段代码表,其数值依次为

7、40h,79h,24h,30h,19h,12h,02h,78h,00h,18h。 要求用 XALT 指令将十进制数 57 转换成相应的 7 段代码值,存到 BX 寄存器中,试写出相应的程序段。 data segment table db 40h,79h,24h,30h,19h db 12h,02h,78h,00h,18h num db 57h data ends ;. code segment assume cs:code, ds: data start: mov ax , data mov ds , ax lea bx , table mov al , num mov ah , al and

8、 al , 0fh xlat mov dl , al mov cl , 4 shr ah , cl mov al , ah xlat mov dh , al mov bx , dx code ends end start 1 10. 已知 X1 和 X2 的定义如下: x1 dw 1024h dw 2476h x2 dw 3280h dw 9351h 请按下列要求进行运算或操作后,将运算结果存到 RESULT 单元中,低位在前,高位在后。试分别写出指令序列。 (2)将 X1 和 X2 两个双字数据相加。 (5)将 X1 和 X2 看作双字 BCD 数再相加。 (6)将 X1 当作 BCD 字数

9、据,然后与 6 相乘。 【解】 (2) mov ax , x1 add ax , x2 mov bx , x1+1 adc bx , x2+1 mov result , ax mov result+1 , bx 【解】 (5) clc mov ax , x1 mov bx , x2 adc al , bl daa mov cl , al mov al , ah adc al , bh daa mov ch , al mov result , cx mov ax , x1+1 mov bx , x2+1 adc al , bl daa mov cl , al mov al , ah adc al

10、 , bh daa mov ch , al mov result+1 , cx 【解】 (6) mov ax , x1 and ax , 000fh mov bl , 6 mul bl aam mov result , ax 12. 某班有 7 个同学的英语成绩低于 80 分,分数存在 array 数组中,试编程完成以下工作: (1)给每人加 5 分,结果存到 new 数 组中。 (2)把总分存到 sum 单元中。 (3)把平均分存到 average 单元中。 【解】 data segment array db 78, 65, 76 db 72, 69, 71, 75 new db ? sum

11、 dw 0 average db ? data ends code segment assume cs:code, ds:data begin: mov ax , data mov ds , ax mov es , ax lea si , array lea di , new mov ax , 0 mov cx , 7 cld redo: lodsb add sum , ax add al , 5 stosb loop redo mov ax , sum mov bl , 7 div dl mov average , al mov ah , 4ch int 21h code ends end

12、begin 14. 设数据段定义如下: data segment string db The Personal Computer data segment result dw ? student_1 student student_2 student student_3 student student_50 student data ends ; code segment assume cs:code, ds:data start: mov ax , data mov ds , ax mov cx , 50 mov dx , 0 mov bx , offset student_1 aga: m

13、ov ax , bxcredit cmp ax , 85 jnae next inc dx next: add bx , 9 loop aga mov result , dx mov ah , 4ch int 21h code ends end start 三、程序设计方法和上机调试三、程序设计方法和上机调试P214 3. 将 AX 中的二进制数转换成 ASCII 字符表示的十进制数。 data segment numb dw 0f5ech buf db 5 dup (0) data dnds code segment assume cs:code, ds:data start: mov ax

14、 , data mov ds , ax mov cx , 5 mov dx , 0 mov bx , 10 mov si , offset buf mov ax , numb rediv: div bx and dl , 0fh add dl , 30h mov si , dl inc si dec cx jnz rediv mov ah , 4ch int 21h code ends end start 7. 编写完整的程序,求 N! ,当 N=6 时的运算结果,并在屏幕上显示。 data segment sum db 6! = $ data ends code segment assume

15、 cs:code, ds:data beg: mov ax , data mov ds , ax mov dx , 0 mov bx , 1 mov ax , 1 aga: inc bx mul bx cmp bl , 6 jnz aga mov dx , 0 mov cx , 0 mov bx , 10 rediv:div bl and ah , 0fh add ah , 30h mov dl , ah push dx mov ah , 0 inc cx cmp al , 0 jnz rediv mov dx , offset sum mov ah , 9 int 21h replay: pop dx mov ah , 2 int 21h loop replay 4 mov ax , 4c00h int 21h code ends end beg 11. 某程序可以从键盘接收命令(05) ,分别转向 6 个子程序,子程序入口地址分别为 A0A5。编制程序,用跳转表实现分之结 构。 data segment base dw a0, a1, a2, dw a3, a4, a5 data ends code segment assume cs:code, ds:data beg: mov ax , data mov ds , ax mov

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号