好文档 - 专业文书写作范文服务资料分享网站

微机原理第二版+田辉+课后问题详解(1)

天下 分享 时间: 加入收藏 我要投稿 点赞

实用文档

0FF00:0FFFCH 0FF00:0FFFDH 0FF00:0FFFEH 0FF00:0FFFFH

44H 33H 22H 11H

SP

3-7.设在数据段偏移地址为 2000H 单元开始的地方连续存放了 0 ~ 15 的平方值。试写 出包含有 XLAT 指令的指令序列,用来查找 0~15 围的某个数 N 的平方值(设 N 的值存 放在 CL 寄存器中)。

答:

MOV BX, 2000H MOV AL, CL XLAT

3-8.试用简单的几条指令完成对 AL 寄存器中的无符号数乘以 12 的操作。要求只能用 移位、加法及 MOV 指令。

答: MOV AH, 0 MOV CL, 2 SHL AX, CL MOV BX, AX SHL AX, 1 ADD AX, BX

;AL 左移两位,相当于乘 4 ;保存

;AL 再左移一位,相当于原数乘 8 ;相当于原数乘 12

3-9.已知程序段如下:

MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX

问:执行完每条指令后,AX=? CF=? SF=? ZF=?(设在执行第一条指令前 CF=SF=ZF=0)。 答: AX=8D00H

CF=0,SF 及 ZF 不确定。 3-10.执行如下三条指令后:

MOV AH,0 MOV AL,7 ADD AL,5

问:(1) 若再执行一条非组合 BCD 码加法调整指令 AAA 后,AX 的容为多少? (2) 若 题中的三条指令后紧跟的是一条组合 BCD 码加法调整指令 DAA,则执行完 DAA 后 AX 的 容为多少?

实用文档

答:

实用文档

(1) AX=0102H (2) AX=0012H

3-11.已知 AX=14C6H,BX=80DCH,问执行下列程序段后,程序转向何处?

ADD AX,BX

JNC L2 SUB AX,BX JNC L3

JMP L4

若初始 AX=B568H,BX=54B7H,情况又如何? 答:

程序转向地址标号 L2 处。

若初始 AX=B568H,BX=54B7H,程序转向地址标号 L4 处。 3-12.如下程序完成什么功能?

MOV AX,5000H MOV DS,AX MOV CX,100 MOV AX,0 MOV SI,AX

START:ADD AX,[SI+1000H]

ADD SI,2 LOOP START MOV [200H],AX 答:

程 序 完 成 存 5000H:1000H 开 始 的 连 续 100 个 字 数 据 的 求 和 , 并 将 和 数 存 于 5000H:200H 处。

3-13、试写一程序片段,将当前数据段偏移地址为 2000H 开始的 100 个字节单元容 与偏移地址为 3000H 开始的 100 个字节单元容相交换,即:偏移地址 2000H 对应单元 容与偏移地址 3000H 对应单元容交换,偏移地址 2001H 对应单元容与偏移地址 3001H

对应单元容交换,依此类推。

答:

MOV SI, 2000H MOV DI, 3000H MOV CX, 100

REPT0: MOV AL, [SI]

MOV BL, [DI] MOV [DI], AL MOV [SI], BL INC SI INC DI LOOP REPT0

3-14.在数据段中偏移地址分别为 1000H 及 2000H 开始的存储区有两个 10 字节的字

实用文档

符串,试编写一段程序来比较这两个字符串。如果这两个字符串不同,则程序转至 8000H:1000H 处,否则顺序执行。

答:

MOV SI,1000H MOV DI,2000H MOV CX,10 CLD REPE CMPSB JCXZ CONTI JMP 8000H:1000H

CONTI: NOP

3-15.利用串操作指令将数据段中偏移地址 1000H 开始处的 100 个字节移动到数据段 偏移地址为 1050H 开始的地方。

答:

MOV CX,100

;装入源串偏移地址 ;装入目的串偏移地址 ;装入字符串长度 ;方向标志复位

MOV SI,1000H+99

MOV DI,1050H+99 STD

;地址减量方式传送

REP MOVSB

;数据块传送(串操作)

实用文档

4-1.如下定义:

VAR1 DB 4

VAR2 DB 10 CNST1 EQU 12 试指出下列指令的错误原因: (1)MOV CNST1,CX (3)CMP VAR1,VAR2 答:

(1) 目的操作数不能是立即数;

(2)MOV VAR1,AX (4)CNST1 EQU 24

第 4 章 汇编语言程序设计

习题

为字; (2) VAR1 单元定义为字节类型,而 AX

(3) 8086/8088 中两个存单元不能直接比较;

(4) 同一符号名不允许用 EQU 重复定义。 4-2.某人定义了如下数据段:

DATA SEGMENT AT 1000H

VAL1 DB 11H VAL2 DW 22H, 33H VAL3 DB 5 DUP (44H) DATA ENDS

试指明该数据段中偏移地址从 100H 到 109H 的各存贮单元的容。 答:

100H: 11H 101H: 22H 102H: 00H 103H: 33H 104H: 00H 105H: 44H 106H: 44H 107H: 44H 108H: 44H 109H: 44H

4-3.对于下面的数据定义,写出各条指令执行后的结果:

DATA SEGMENT ORG 0100H

AAAA DW 0A244H

BBBB DB 33H,66H,92H,29H CCCC EQU WORD PTR BBBB

ORG 100H

微机原理第二版+田辉+课后问题详解(1)

实用文档0FF00:0FFFCH0FF00:0FFFDH0FF00:0FFFEH0FF00:0FFFFH44H33H22H11HSP3-7.设在数据段偏移地址为2000H单元开始的地方连续存放了0
推荐度:
点击下载文档文档为doc格式
8pych8ncn70h1ll01eyq0a6ri16osu014bx
领取福利

微信扫码领取福利

微信扫码分享