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

李伯成《微型计算机原理及应用》课后习题答案

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

者控制CPU工作方式的标志寄存器。

试画出8086CPU工作在最小模式时的总线形成示意图。

(注:BHE*引脚为34脚---即SS0,参见P25状态编码表)

四点说明:

A、,决定了8086工作在最小模式。 B、有一片8234A,作为。

C、有三片8282或74LS373,用来作为。 D、当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力, 这时,要用两片8286/8287(74LS244或74LS245)作为。

8086/8088为什么采用地址/数据引线复用技术? 答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从时序逻辑的角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同?

答:引线MN/MX*的逻辑状态决定8086的工作模式,MN/MX*引线接高电平,8086被设定为最小模式;MN/MX*引线接低电平,8086被设定为最大模式。最小模式下所有的控制信号由CPU相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入由8086的S2─S0三条状态信号引线提供。

李伯成《微机原理》习题 第三章

本章作业参考书目:

1.周明德: 微型计算机IBM-PC系统原理与应用 清华大学出版社 1991 2.王永山等: 微型计算机原理与应用 西安电子科大出版社 1998 3.张怀莲: IBMPC汇编语言程序设计 电子工业出版社 1990

注:本习题解中的程序仅为代码片段,可在Emu8086 version 环境下仿真运行,如果在MASM下进行汇编,需添加段设置以及相应的伪指令。 3.1

MOV AX,00H; SUB AX,AX;

MOV AX,[BX]; MOV AX,TABLE;

MOV

立即寻址 寄存器寻址 寄存器间接寻址 直接寻址 寄存器相对寻址

MOV AL,ARAY1[SI];

AX,[BX+6];

寄存器相对寻址

3.2 若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。

程序片段如下:

ORG 100h MOV CX,03FFH;数据个数 LEA SI,TABLE;源区首地址 LEA DI,NEXT; 目的区首地址

AL,[SI];

MOV

[DI],AL; 搬移

移动地址指针

循环计数器递减

AGAIN: MOV

INC SI

INC DI; DEC

CX;

JNZ AGAIN; 循环未结束转 HLT;

暂停

TABLE DB 1024 dup ('A'); 源数据区 NEXT

DB 1024 dup (0); 目的数据区 ORG 100h

3.3 编写10个字(16位二进制数)之和的程序

LEA SI,ADD1; LEA DI,ADD2; LEA BX,SUM; MOV MOV

CL,CONT; CH,0; 循环初始化

进位清零

读加数1

移动源区地址指针 移动目的区地址指针

CLC; ADC ADD ADD MOV ADD LOOP

MADD1: MOV AX,[SI];

AX,[DI] SI,2; DI,2;

[BX],AX; BX,2; MADD1;

回存计算结果

移动“和”存储区地址指针 循环控制

HLT; 暂停

ADD1 ADD2 SUM CONT

DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加数2 DB 10 DUP (0); 和存储单元 DB 5 ; 循环次数

某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。

ORG 100h MOV BL,2;

CX,NUM;

BL;

MOV MUL CMP MOV

除数初值 预计最大循环次数 0、1的平方根除外 大于原始数据么? 读数

AGAIN: MOV

AL,BL; AX,CX; AX,CX;

试除

得到2的平方

若原始数据小于4转EXIT

JG EXIT; DIV BL; INC BL; DEC MOV MOV MUL MOV HLT

除数递增

继续除 去除除数自加

存商 恢复余数

JMP AGAIN;

BL;

EXIT:

ANS,BL; AL,BL; BL;

SUB CX,AX;

REMAIN,CL;

NUM DW 7;

ANS DB ?;

REMAIN DB ?;

在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。

MOV

MOV MOV CLD XOR XOR AND CMP CMP JG

AX,AX DX,DX AL,7FH AL,'0' AL,'9' ASCB2 CL,4;

移位次数

CH,CL; 循环次数 SI,OFFSET ASCBIN

ASCB1: LODSB

;不大于‘0’结束转换

JL ERR

;大于‘9’转ASCB2

SUB AL,30H ; 数字形式二进制数减30H ;大于‘9’又小于‘A’结束转换

JMP ASCB3 ASCB2: CMP AL,'A'

JL ERR CMP JG SUB ROL DEC JNZ ROL MOV NOP HLT

AL,'F' ERR

;大于‘F’为不合理数,结束转换 ;字符形式ASCII数减37H

AL,37H

DX,CL CH

ASCB3: OR DL,AL

ASCB1

DX,CL

BIN,DX;存储转换结果

ERR:

ASCBIN DB '1','B,'4','3'

BIN DW ?

编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。 解:第一种方法:常规乘法运算

ORG 100h MOV MOV MUL MOV HLT

MOLT DB 2

AL,MOLT BL,20 BL ANS,AX

ANS DW ?

第二种方法,将MOLT连加20次

ORG 100h

MOV MOV XOR CLC LOOP MOV HLT

ADD1 ANS,AX CX,20 BX,MOLT AX,AX

ADD1:ADC AX,BX

MOLT DW 5

ANS DW ?

第三种方法,将“20”连加MOLT次

ORG 100h

MOV MOV XOR CLC LOOP

ADD1 CX,MOLT BX,20 AX,AX

ADD1:ADC AX,BX

MOV HLT

ANS,AX

MOLT DW 5

ANS DW ?

在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。

ORG 100h

XOR LEA

DL,DL DI,KVFF;

DL中始终存目前最大值

比较次数为N-1次

NEXT0: LEA SI,BUFFER; MOV CL,99; NEXT1: MOV

AL,[SI];

SI;

INC CMP

DL,AL;

JNC NEXT2; MOV DL,AL;

CL;

NEXT2: DEC

JNZ NEXT1;

MOV [DI],DL; 最大值存储 HLT

BUFFER DB ;自行定义100个数据

KVFF DB ?

若将数据按大小顺序排序,试编写程序.. 解:此处采用 “冒泡法”予以处理:

ORG 100h LEA DI,BUFFER; MOV

BL,99;

数据区

外循环次数 内循环次数

NEXT0:

NEXT3:

MOV SI,DI; MOV CL,BL; MOV

AL,[SI]; 读数

INC SI; CMP MOV MOV MOV JNZ DEC JNZ

移动指针

比较

AL,[SI]; DL,[SI]; [SI-1],DL; [SI],AL;

JNC NEXT5; 大于转NEXT5

不大于互换

NEXT5: DEC CL; 内循环次数减一

NEXT3; BL; 外循环次数减一 NEXT0

HLT

BUFFER DB 自行定义100个字节型数据 A<20,Y=3*A; A<60,Y=A-20; A>=60,Y=80.

在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.

ORG 100h

李伯成《微型计算机原理及应用》课后习题答案

者控制CPU工作方式的标志寄存器。试画出8086CPU工作在最小模式时的总线形成示意图。(注:BHE*引脚为34脚---即SS0,参见P25状态编码表)四点说明:A、,决定了8086工作在最小模式。B、有一片8234A,作为。C、有三片8282或74LS373,用来作为。D、当系统中所连接的存储器和
推荐度:
点击下载文档文档为doc格式
5li9q8vhit6ehs64cxfu8wrp7230fg017pd
领取福利

微信扫码领取福利

微信扫码分享