搜档网
当前位置:搜档网 › 微机原理和接口技术课后习题和参考答案解析(汇编)

微机原理和接口技术课后习题和参考答案解析(汇编)

微机原理和接口技术课后习题和参考答案解析(汇编)
微机原理和接口技术课后习题和参考答案解析(汇编)

第一章课后习题

1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 16.25 ② 35.75 ③ 123.875 ④ 97/128

1.2 把下列二进制数转换成十进制数。

① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.1

1.3 把下列八进制数转换成十进制数和二进制数。

① 756.07 ② 63.73 ③ 35.6 ④ 323.45

1.4 把下列十六进制数转换成十进制数。

① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC

1.5 求下列带符号十进制数的8位补码。

① +127 ② -1 ③ -0 ④ -128

1.6 求下列带符号十进制数的16位补码。

① +355 ② -1

1.7 计算机分那几类?各有什么特点?

1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。

1.9 80X86微处理器有几代?各代的名称是什么?

1.10 你知道现在的微型机可以配备哪些外部设备?

1.11 微型机的运算速度与CPU的工作频率有关吗?

1.12 字长与计算机的什么性能有关?

习题一参考答案

1.1 ① 16.25D=10000.01B=20.2Q=10.4H

② 35.75D=100011.11B=43.6Q=23.CH

③ 123.875D=1111011.111B=173.7Q=7B.EH

④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H

1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D

③ 111.01B=7.25D ④ 1010.1B=10.5D

1.3 ① 756.07Q=111101110.000111B=494.109D ②

63.73Q=110011.111011B=51.922D

③ 35.6Q=11101.110B=29.75D ④

323.45Q=11010011.100101B=211.578D

1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D

③ B7C.8D=2940.551D ④ 1ECH=492D

1.5 ① [+127]

补=01111111 ② [-1]

= 11111111

③ [-0]

补=00000000 ④[-128]

=10000000

1.6 ① [+355]

补= 0000000101100011 ② [-1]

= 1111 1111 1111 1111

1.7 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统,存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。

1.8 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影

响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。

1.9 答:从体系结构上可分为5代:4004:4位机;8080/8085:8位机;8086/8088/80286:16位机;80386/80486:32位机;Pentium系列机:64位。

第二章课后习题

2.1、EU与BIU各自的功能是什么?如何协同工作?

2.2、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?

2.3、8086对存储器的管理为什么采用分段的办法?

2.4、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。

2.5、给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。

2.6、8086/8088为什么采用地址/数据引线复用技术?

2.7、8086与8088的主要区别是什么?

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

2.9、8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?

2.10、8086基本总线周期是如何组成的?各状态中完成什么基本操作?

2.11、在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的?

BHE#信号起什么作用?

2.12、80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足?

2.13、80386内部结构由哪几部分组成?简述各部分的作用。

2.14、80386有几种存储器管理模式?都是什么?

2.15、在不同的存储器管理模式下,80386的段寄存器的作用是什么?

2.16、描述符的分类及各描述符的作用。

2.17、80386的分段部件是如何将逻辑地址变为线性地址的?

2.18、803866中如何把线性地址变为物理地址?

习题二参考答案

1、答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。

2、答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES 和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物

理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

3、答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。

4、答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。

5、答:物理地址:320F8H。

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

7、答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。

8、答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。

最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。

9、答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH 存储单元取指令并开始执行。

10、答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;T2期间发出读写命令信号RD#、WR#及其它相关信号;T3期间完成数据的访问;T4结束该总线周期。

11、答:8086为16位处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE#信号;BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。

12、答:好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。

13、答:80386内部结构由执行部件(EU)、存储器管理部件(MMU)和总线接口部件(BIU)三部分组成。EU包括指令预取部件、指令译码部件、控制部件、运算部件及保护检测部件,主要功能是执行指令。存储器管理部件包括分段部件、分页部件,实现对存储器的分段分页式的管理,将逻辑地址转换成物理地址。总线接口部件作用是进行片外访问:对存储器及I/O接口的访问、预取指令;另外的作用是进行总线及中断请求的控制

14、答:80386有三种存储器管理模式,分别是实地址方式、保护方式和虚拟8086方式

15、答:在实地址方式下,段寄存器与8086相同,存放段基地址。在保护方式下,每个段寄存器还有一个对应的64位段描述符寄存器,段寄存器作为选择器存放选

择符。在虚拟8086方式下,段寄存器的作用与8086相同。

16、答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的长度单位。系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。

17、答:分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。

18、答:分段部件形成的32位线性地址中高10位作为寻址页目录表的偏移量,与控制寄存器CR3中页目录表基地址共同形成一个32位的地址指向页表中的一个页项,即为一个页面描述符。该页面项中高20位作为页面基地址,线性地址的低12位为偏移量,相加后形成指向某一存储单元的32位物理地址。若禁止分页功能,线性地址就是物理地址。

第三章课后习题

3.1、 8086/8088微处理器有哪些寻址方式?并写出各种寻址方式的传送指令2条(源操作数和目的操作数寻址)。

3.2、有关寄存器和内存单元的内容如下:

DS=2000H,SS=1000H,BX=0BBH,BP=02H,SI=0100H,DI=0200H,(200BBH)=1AH,(201BBH)=34H,(200CCH)=68H,(200CDH)=3FH,(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(201CCH)=56H, (201CDH)=5BH,(201BCH)=89H,(200BCH)=23H,试写出下表中源操作数的寻址方式和寄存器AX的内容。

表3-7 习题1

指令源操作数寻址方式AX的内容

MOV AX,1200H

MOV AX,BX

MOV AX,[1200H]

MOV AX,[BX]

MOV AX,[BX+11H]

MOV AX,[BX+SI]

MOV AX,[BX+SI+11H]

MOV AX,[BP+DI]

3.3、指出下列语句的错误。

(1)MOV [SI],34H

(2)MOV 45H,AX

(3)INC 12

(4)MOV [BX],[SI+BP+BUF]

(5)MOV BL,AX

(6)MOV CS,AX

(7)OUT 240H,AL

(8)MOV SS,2000H

(9)LEA BX,AX

(10)XCHG AL,78H

3.4、已知DS=2000H,(21000H)=2234H,(21002H)=5566H,试区别以下3条指令。

MOV SI,[1000H]

LEA SI,[1000H]

LDS SI,[1000H]

3.5、简述堆栈的性质。如果SS=9B9FH,SP=200H,连续执行两条PUSH指令后,栈顶的物理地址是多少?SS,SP的值是多少?再执行一条POP指令后,栈顶的物理地址又是多少?SS、SP的值又是多少?

3.6、写出将AX和BX寄存器内容进行交换的堆栈操作指令序列,并画出堆栈变化过程示意图。

3.7、用两条指令把FLAGS中的SF位置1。

3.8、用一条指令完成下列各题。

(1)AL内容加上12H,结果送入AL。

(2)用BX寄存器间接寻址方式把存储器中的一个内存单元加上AX的内容,并加上CF位,结果送入该内存单元。

(3)AX的内容减去BX的内容,结果送入AX。

(4)将用BX、SI构成的基址变址寻址方式所得到的内容送入AX。

(5)将变量BUF1中前两个字节的内容送入寄存器SI中。

3.9、下面的程序段执行后,DX、AX的内容是什么?

MOV DX,0EFADH

MOV AX,1234H

MOV CL,4

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

3.10、写出下面的指令序列中各条指令执行后的AX内容。

MOV AX,7865H

MOV CL,8

SAR AX,CL

DEC AX

MOV CX,8

MUL CX

NOT AL

AND AL,10H

3.11、如果要将AL中的高4位移至低4位,有几种方法?请分别写出实现这些方法的程序段。

3.12、利用串操作指令,将AREA1起始的区域1中的200个字节数据传送到以AREA2为起始地址的区域2(两个区域有重叠)。

3.13、寄存器BX中有4位0~F的十六进制数,编写程序段,将其转换为对应字符(即ASCII码),按从高到低的顺序分别存入L1、L2、L3、L4这4个字节单元中。

3.14、试将BUF起始的100个字节的组合BCD码数字,转换成ASCII码,并存放在以ASC为起始地址的单元中。已知高位BCD码位于较高地址中。

3.15、请给出以下各指令序列执行完后目的寄存器的内容。

(1)MOV BX,-78

MOVSX EBX,BX

(2)MOV CL,-5

MOVSX EDX,CL

(3)MOV AH,9

MOVZX ECX,AH

(4)MOV AX,87H

MOVZX EBX,AX

3.16、请给出以下各指令序列执行完后EAX和EBX的内容。

MOV ECX,12345678H

BSF EAX,ECX

BSR EBX,ECX

3.17、给以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,在顺序输出到10H号端口。

3.18、编写一段程序,要求在长度为100H字节的数组中,找出正数的个数并存入字节单元POSIT中,找出负数的个数并存入字节单元NEGAT中。

习题三参考答案

3.1答:寻址方式是指计算机在执行指令时寻找操作数的方式。8086/8088微处理

器有以下几种寻址方式:

①立即寻址。操作数(仅限源操作数)直接放在指令中。例如:mov cx,100;mov ah,20h。

②寄存器寻址。操作数在CPU的内部寄存器中。例如:mov es,ax;mov dl,bh。

③直接寻址。指令中直接给出了操作数的偏移地址。例如:mov ax,[3000h];mov buf,100。

④寄存器间接寻址。操作数的偏移地址放在寄存器bp,bx,si,di四个寄存器中的一个里。例如:mov ax,[si];mov [bx],cx。

⑤寄存器相对寻址。操作数的有效地址为基址寄存器或变址寄存器的内容与指令中指定的位移量之和。例如:mov ax,cnt[si];mov str[bx],ax。

⑥基址变址寻址。操作数的有效地址是一个基址寄存器和一个变址寄存器的和。例如:mov ax,[si+bx];mov [bx+di],dx。

⑦相对基址变址寻址。操作数的有效地址为一个基址寄存器、一个变址寄存器的内容与指令中指定的位移量三者之和。例如:mov ax,cnt[bx][si];mov cnt[bx][si],ax。

3.2. 答:

指令源操作数寻址方式AX的内容

MOV AX,1200H 立即寻址1200H

MOV AX,BX 寄存器寻址0BBH

MOV AX,[1200H] 直接寻址4C2AH

MOV AX,[BX] 寄存器间接寻址231AH

MOV AX,[BX+11H] 寄存器相对寻址3F68H

MOV AX,[BX+SI] 基址变址寻址8934H

MOV AX,[BX+SI+11H] 相对基址变址寻址5B56H

MOV AX,[BP+DI] 基址变址寻址6778H

3.3 答:

(1)MOV [SI],34H;目的操作数必须指出是字节操作还是字操作,比如可改成MOV BYTE PTR [SI],34H

(2)MOV 45H,AX;目的操作数不能是立即数

(3)INC 12;操作数不能是立即数

(4)MOV [BX],[SI+BP+BUF];两个操作数不能同是存储单元

(5)MOV BL,AX;操作数不匹配

(6)MOV CS,AX;CS不能作为目的操作数

(7)OUT 240H,AL;对于IN和OUT指令,端口号大于FFH时,必须先将端口号放入DX寄存器中

(8)MOV SS,2000H;段寄存器不能用立即数来赋值,可改成MOV SS,AX

(9)LEA BX,AX;源操作数必须是内存,如LEA BX,BUFFER (10)XCHG AL,78H;交换指令不能对立即数操作

3.4答:MOV SI,[1000H];(SI)=2234H

LEA SI,[1000H];(SI)=1000H

LDS SI,[1000H];(SI)=2234H,(DS)=5566H

3.5答:先进后出。

9BBF0H-4=9BBECH

9BBECH+2=9BBEEH

3.6答:PUSH AX

PUSH BX

POP AX

POP BX

3.7 答:MOV AX,7FH

ADD AX,1

3.8答:⑴ADD AL,12H

⑵ADC [BX],AX

⑶SUB AX,BX

⑷MOV AX,[BX+SI]

⑸MOV SI,BUF1

3.9答:DX=FAD1H,AX=2340H

3.10答:AX=300H

3.11答:①循环左移

mov cl,4

rol al,cl

②循环右移

mov cl,4

ror al,cl

③右移

mov cl,4

shr al,cl

3.12答:从末端开始传送即可解决重叠问题。

mov cx,200

mov si,offset aera1

add si,200

mov di,offset aere2

add di,200

std;DF=1,进行地址减量

rep movsb

3.13答:

MOV CL,4

MOV AL,BL ;处理最低位十六进制数 AND AL,0FH

CMP AL,0AH

JC DIGT4

ADD AL,7

DIGT4: ADD,AL,30H

MOV L4,AL

MOV AL,BL ;处理次低位十六进制数 SHR AL,CL

CMP AL,0AH

JC DIGT3

ADD AL,7

DIGT3: ADD,AL,30H

MOV L3,AL

MOV AL,BH ;处理次高位十六进制数 AND AL,0FH

CMP AL,0AH

JC DIGT2

ADD AL,7

DIGT2: ADD,AL,30H

MOV L2,AL

MOV AL,BH ;处理最高位十六进制数 SHR AL,CL

CMP AL,0AH

JC DIGT1

ADD AL,7

DIGT1: ADD,AL,30H

MOV L1,AL

3.14答:

LEA SI,BUF

LEA BX,ASC

MOV CH,100

MOV CL,4

AGAIN: MOV AL,[SI] ;处理低位BCD码

AND AL,0FH

ADD AL,30H

MOV [BX],AL

INC BX

MOV AL,[SI] ;处理高位BCD码

SHR AL,CL

ADD AL,30H

MOV [BX],AL

INC BX

INC SI

DEC CH

JNZ AGAIN

3.15答:(1)MOV BX,-78;(BX)=FFB2H

MOVSX EBX,BX;(EBX)=FFFFFFB2H

(2)MOV CL,-5;(CL)=FBH

MOVSX EDX,CL;(EDX)=FFFFFFFBH

(3)MOV AH,9;(AH)=9H

MOVZX ECX,AH(ECX)=00000009H

(4)MOV AX,87H;(AX)=87H

MOVZX EBX,AX;(EBX)=00000087H

3.16答:MOV ECX,12345678H;(ECX)=12345678H BSF EAX,ECX ;(EAX)=00000003H

BSR EBX,ECX;(EBX)=0000001CH

3.17答:

MOV CX,100

LEA BX,TAB

AGN: MOV AL,[BX]

ADD AL,0

JP NEXT

OR AL,80H

NEXT: OUT 10H,AL

INC BX

LOOP AGN

3.18 答:假设数组的起始地址是BUFFER

LEA BX,BUFFER

MOV DX,0

MOV CX,100

ONCE: MOV AL,[BX]

TEST AL,80H;是正数还是负数

JNZ FUSHU;是负数,跳转

CMP AL,0;是0吗?

JZ NEXT

INC DH;是正数,则DH加1

JMP NEXT

FUSHU: INC DL;是负数,则DL加1

NEXT: INC BX

DEC CX

JNZ ONCE

MOV POSIT,DH

MOV NEGAT,DL

第四章课后习题

4.1、汇编语言有何特点?编写汇编语言源程序时,一般的组成原则是什么?4.2、.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪几种存储模式,各用于创建什么性质的程序?

4.3、如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?

4.4、逻辑段具有哪些属性?完整代码段定义时的默认属性是什么?小型模式下的简化代码段定义具有的默认属性是什么?

4.5、 DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么?

4.6、给出下列语句中,指令立即数(数值表达式)的值:

(1)mov al,23h AND 45h OR 67h

(2)mov ax,1234h/16+10h

(3)mov ax,254h SHL 4

(4)mov al,’a’ AND (NOT(‘b’一‘B’))

(5)mov ax,(76543 LT 32768)XOR 7654h

4.7、画图说明下列语句分配的存储空间及初始化的数据值:

(1)byte_var db ‘BCD’,10,10h,’EF’,2 dup (一l,?,3 dup(4))(2) word_var dw 1234h,一5,6 dup(?)

4.8、设置一个数据段,按照如下要求定义变量:

(1)myl_b为字符串变量,表示字符串“Personal Computer!”

(2)my2_b为用十六进制数表示的字节变量,这个数的大小为100

(3)my3_w为100个未赋值的字变量

(4)my4_c为100的符号常量

(5)my5_c为字符串常量,代替字符串“Personal Computer!”

4.9、假设opw是一个字变量,opbl和opb2是两个字节变量,指出下列语句中的具体错误原因并改正错误。

(1) mov byte ptr [bx],256

(2) mov bx,offset opw[si]

(3) add opbl,opb2

(4) mov opbl,al+l

(5) sub al,opw

(6) mov [di],1234h

4.10、编制一个程序,把字变量X和Y中数值较大者存入MAX字单元;若两者相等,则把-1存入MAX中。假设变量存放的是有符号数。

4.11、设变量DAT为有符号16位数,请编写程序将它的符号状态保存在sign字节单元,即:如果变量值大于等于0,保存0;如果变量值小于0,保存-1。

4.12、 X、Y和Z是3个有符号字节数据,编写一个比较相等关系的程序:

(1)如果这3个数都不相等,则显示N;

(2)如果这3个数中有两个数相等,则显示X;

(3)如果这3个数都相等,则显示Y。

4.13、编制程序完成12H,23H,F3H,6AH,20H,FEH,10H,C8H,25H和34H共10个无符号字节数据之和,并将结果存入字变量SUM中。

4.14、求出主存从2000H:0开始的一个64KB物理段中共有的空格个数,存入DX 中。

4.15、过程定义的一般格式是什么?子程序开始为什么常有PUSH指令,返回前为什么有POP指令?下面完成16位无符号数累加的子程序是否正确?若有错,请改正。

jiafa PROC

push ax

xor ax,ax

xor dx,dx

again: add ax, [bx]

adc dx,0

inc bx

inc bx

loop again

ret

ENDP jiafa

4.16、编写一个程序,统计寄存器AX中二进制数位“0”的个数,结果以二位十进制数形式显示到屏幕上。

4.17、子程序的参数传递有哪些方法?

4.18、编写一个求32位数据补码的子程序,通过寄存器传递入口参数。

4.19、所谓“校验和”是指不记进位的累加,常用于检查信息的正确性。编写一个计算字节校验和的子程序。主程序提供入口参数:数据个数和数据缓冲区的首地址。子程序回送求和结果这个出口参数。

4.20、编制一个子程序,把一个16位二进制数用4位16进制形式在屏幕上显示出来。

4.21、在以BUF为首地址的字缓冲区中有3个无符号数,编程将这3个数按升序排列,结果存回原缓冲区。

4.22、在DAT字节单元中有一个有符号数,判断其正负,若为正数,则在屏幕上显示“+”号;若为负数,则显示“-”号;若是0,则显示0。

4.23、编程求1~400中所有奇数的和,结果以十六进制数形式显示到屏幕上。

4.24、在以DAT为首地址的字节缓冲区中存有100H个无符号字节数据,编程求其最大值与最小值之和,结果存入RESULT字单元。

4.25、在内存单元CNT中有一个字数据,编程将其二进制数显示到屏幕上。4.26、在以STRG为首地址的缓冲区中有一组字符串,长度为100,编程实现将其中所有的英文小写字母转换成大写字母,其它的不变。

4.27、在以DAT为首地址的内存中有100个无符号数(数的长度为字),编程统计其中奇数的个数,结果以十进制形式显示到屏幕上。要求分别用子程序完成奇数个数统计,用宏完成十进制数显示。

4.28、编写一段程序,使汇编程序根据SIGN的值分别产生不同的指令。

如果SIGN=0,则用字节变量DATB中的无符号数除以字节变量SCALE;如果SIGN=1,则用字节变量DATB中的有符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。

习题四参考答案

4.1答:汇编语言是计算机能够提供给用户使用的最快速有效的语言,它是以处理器指令系统为基础的低级程序设计语言,采用助记符表示指令操作码,采用标

识符表示指令操作数。利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。在对程序的空间和时间要求高的应用领域,汇编语言的作用是不容置疑和无可替代的。然而,汇编语言作为一种低级语言也存在很多不足,例如,功能有限、编程难度大、依赖处理器指令,这也限制了它的应用范围。

汇编语言源程序由若干语句组成,通常,这些语句可以分为3类,分别是:(1)指令语句;(2)宏指令语句;(3)伪指令语句。汇编语言也由段组成,8086/8088按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段,段与段之间的顺序可以任意排列。需要独立运行的程序必须包含一个代码段,一个程序只有一个起始点,且必须指示程序的起始点。

4.2答:七种存储模型:

①Tiny 所有数据和代码都放在一个段内,其数据和代码都是近访问。Tiny 程序可以写成.COM文件格式,COM程序必须从0100H的存储单元开始。这种模型一般用于小程序。

②Small 所有数据放在一个64KB的数据段内,所有代码放在另一个64KB的代码段内,数据和代码也都是近访问的。这是一般应用程序最常用的一种模型。

③Medium 代码使用多个段,一般一个模块一个段,而数据则合并成一个64KB 的段组。这样,数据是近访问的,而代码则可远访问。

④Compact 所有代码都放在一个64KB的代码段内,数据则可放在多个段内,形成代码是近访问的,而数据则可为远访问的格式。

⑤Large 代码和数据都可用多个段,所以数据和代码都可以远访问。

⑥Huge 与Large模型相同,其差别是允许数据段的大小超过64KB。

⑦Flat 允许用户用32位偏移量,但DOS下不允许使用这种模型,只能在OS /2下或其他保护模式的操作系统下使用。MASM 5版本不支持这种模型,但MASM 6可以支持。

4.3答:需要使用一个标号,如start。对于有数据段的程序,简化段定义下应该这样开始:

start:mov ax,@data

mov ds,ax

汇编语言程序设计过程中,有多种返回DOS的方法,但一般用DOS功能调用的4CH 子功能来实现。应用程序的终止代码是:

mov ax,4c00h

int 21h

汇编结束是指汇编程序结束将源程序翻译成目标模块代码的过程。源程序的最后必须有一条end伪指令:end [标号];其中,可选的标号是程序指定的开始执行点,连接程序以此设置CS和IP。如:

end start

4.4答:逻辑段具有4个属性:(1)定位类型(align_type)说明段的起始地址应有怎样的边界值;(2)组合类型(combine_type)说明程序连接时的段合并方法;(3)使用类型(use_type)只适用于386及其后继机型,它用来指定寻址方式。(4)类别(‘class’)在引号中给出连接时组成段组的类型名。

完整代码段定义时的默认属性是:PARA、PRIVATE、USEl6

4.5答:COM和EXE程序结构。EXE程序有独立的代码段、数据段和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB。COM程序只有一个逻辑段,其中包含数据区、代码区和堆栈区,程序代码长度不超过64KB,程序从100H 处开始执行。

4.6 答:(1)mov al,23h AND 45h OR 67h;67H

(2)mov ax,1234h/16+10h;133H

(3)mov ax,254h SHL 4;2540H

(4)mov al,’a’ AND (NOT(‘b’-‘B’));21H

(5)mov ax,(76543 LT 32768)XOR 7654h;89ABH

4.7.答:(1)

42

H

43

H

44

H

0A

H

10

H

45

H

46

H

FF

H

-

04

H

04

H

04

H

FF

H

-

04

H

04

H

04

H

(2)

34

H

12

H

FB

H

FF

H

-

-

-

-

-

-

-

-

-

-

-

-

4.8答:(1)myl_b db ‘Personal Computer!’(2)my2_b db 64H

(3)my3_w dw 100 dup(?)

(4)my4_c equ 100

(5)my5_c equ

4.9答:(1) mov byte ptr [bx],256;改正――mov word ptr [bx],256

(2) mov bx,offset opw[si];改正――mov bx,offset opw

(3) add opbl,opb2;改正――add al,opb2

(4) mov opbl,al+l;改正――mov opbl,al

(5) sub al,opw;改正――sub al,opb1

(6) mov [di],1234h;改正――mov word ptr [di],1234h

4.10答:

.MODEL SMALL

.DATA

X DW 1234H

Y DW 4321H

MAX DW ?

.CODE

START: MOV AX,@DATA

MOV DS,AX

MOV AX,X

CMP AX,Y

JNZ NEQU

MOV MAX,0FFFFH

JMP STOP

NEQU: JC NEXT

MOV MAX,X

JMP STOP

NEXT: MOV MAX,Y

STOP: MOV AX,4C00H

INT 21H

END START

4.11答:.MODEL SMALL

.DATA

DAT DW 9234H

SIGN DW ?

.CODE

START: MOV AX,@DATA

MOV DS,AX

MOV AX,DAT CMP AX,0

JZ STOP

TEST AX,8000H

JNZ FU

MOV SIGN,0

JMP STOP

FU: MOV SIGN,0FFH STOP: MOV AX,4COOH INT 21H

END START

4.12答:

DISPLAY MACRO

MOV AH,2

INT 21H

ENDM

.MODEL SMALL

.DATA

X DW 1230H

Y DW 1234H

Z DW 1234H

.CODE

START: MOV AX,@DATA MOV DS,AX

MOV AX,X

MOV BX,Y

CMP AX,Z

JNZ N1

CMP AX,BX

JNZ N2

MOV DL,'Y'

DISPLAY

STOP: MOV AX,4C00H INT 21H

N1: CMP AX,BX

N2: MOV DL,'X'

DISPLAY

JMP STOP

N3: CMP BX,Z

JNZ N4

JMP N2

N4: MOV DL,'N'

DISPLAY

JMP STOP

END START

4.13答:

.MODEL SMALL

.DATA

DAT DB 12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34H SUM DW ?

.CODE

START: MOV AX,@DATA

MOV DS,AX

MOV CX,10

MOV DX,0

LEA BX,DAT

AGAIN: MOV AL,[BX]

CBW

MOV DX,AX

INC BX

LOOP AGAIN

MOV SUM,DX

MOV AX,4C00H

INT 21H

END START

4.14答:

.MODEL SMALL

.CODE

START: MOV AX,2000H

MOV DS,AX

MOV DX,0

MOV CX,0FFFFH

AGAIN: MOV AL,[SI]

CMP AL,20H

JNZ NEXT

INC DX

NEXT: INC SI

LOOP AGAIN

MOV AX,4C00H

INT 21H

END START

4.1

5. 答:procname PROC [attributes field][USES register

list][,parameter field]

Procname ENDP

push和pop的使用是为了保护子程序的调用的现场,比如寄存器的值。本例中要保护的寄存器是ax和dx。

jiafa PROC;用CX,BX传参数――数据的个数和数据的起始地址,结果放在字内存单元SUM和SUM+1 push ax

push dx

xor ax,ax

xor dx,dx

again: add ax, [bx]

adc dx,0

inc bx

inc bx

loop again

mov sum,ax

mov [sum+1],dx

pop dx

pop ax

ret

jiafa ENDP

4.16答:

.MODEL SMALL

(完整版)微机原理课后习题参考答案

第一章 2、完成下列数制之间的转换。 (1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。 答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。 组合型:254=(001001010100)BCD 非组合型:254=(00000010 00000101 00000100)BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少? 答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~ -32768。 9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。 (1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确 [X-Y]补=10111001B=00010010+10100111=(-71D)补正确 (2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确 (3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确 [X-Y]补=00010010+00001111=00100001B=(33D)补正确 (4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。 13、微型计算机的主要性能指标有哪些? 答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。 第二章 2、8086标志寄存器包含哪些标志位?试说明各标志位的作用。 答:进位标志:CF;奇偶校验:PF;辅助进位:AF;零标志:ZF;符号标志:SF;溢出标志:OF。 5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址? 答:物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为段基址:偏移地址。 物理地址=段基址*10H+偏移地址。 6、写出下列逻辑地址的段基址、偏移地址和物理地址。 (1)2314H:0035H (2)1FD0H:000AH 答:(1)段基址:2314H;偏移地址:0035H;物理地址:23175H。 (2)段基址:1FD0H;偏移地址:000AH;物理地址:1FD0AH。 8、设(CS)=2025H,(IP)=0100H,则当前将要执行指令的物理地址是多少? 答:物理地址=(CS)*10H+(IP)=20350H 9、设一个16字的数据区,它的起始地址为70A0H:DDF6H(段基址:偏移地址),求这个数据区的首字单元和末字单元的物理地址。

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

微机原理课后习题答案

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

汇编语言课后习题解答

第1章基础知识 检测点1.1(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 (4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU 最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言 第二版 王爽 完整答案

第1章基础知识 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。 (2)1KB的存储器有1024个存储单元。存储单元的编号从0到1023。 (3)1KB的存储器可以存储1024*8个bit,1024个Byte。 (4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。(n^m的意思是n的m次幂) (5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。 第2章寄存器答案 检测点2.1 (1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627 AX=F4A3H mov ah,31H AX=31A3H mov al,23H AX=3123H add ax,ax AX=6246H mov bx,826CH BX=826CH mov cx,ax CX=6246H mov ax,bx AX=826CH add ax,bx AX=04D8H mov al,bh AX=0482H mov ah,bl AX=6C82H add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H (2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2 (1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。 (2) 有一数据存放在内存 20000H 单元中,先给定段地址为SA,若想用偏移地址寻到此单元。

微机原理与接口技术课后习题答案

第1章微型计算机系统 〔习题〕简答题 (2)总线信号分成哪三组信号 (3)PC机主存采用DRAM组成还是SRAM组成 (5)ROM-BIOS是什么 (6)中断是什么 (9)处理器的“取指-译码-执行周期”是指什么 〔解答〕 ②总线信号分成三组,分别是数据总线、地址总线和控制总线。 ③ PC机主存采用DRAM组成。 ⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 ⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍

返回被中断的指令继续执行的过程。 ⑨指令的处理过程。处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 〔习题〕填空题 (2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。 (3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。 (9)最初由公司采用Intel 8088处理器和()操作系统推出PC机。 ② 1MB,4GB ③ 216,64KB (9)IBM,DOS 〔习题〕说明微型计算机系统的硬件组成及各部分作用。 〔解答〕

CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。 总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题〕区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。 〔解答〕 助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。 汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。 汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

微机原理课后作业答案(第五版)

6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原=B [-42]反=B [-42]补=B [+85]原=01010101B=[+85]反=[+85]补 [-85]原=B [-85]反=B [-85]补=B 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1)1200:3500H=1200H×16+3500H=15500H (2)FF00:0458H=FF00H×16+0458H=FF458H (3)3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址1200H×16=12000H,结束地址1200H×16+FFFFH=21FFFH (2)段起始地址3F05H×16=3F050H,结束地址3F05H×16+FFFFH=4F04FH (3)段起始地址0FFEH×16=0FFE0H,结束地址0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS:SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是283AH; 从2001H单元取出一个字数据需要2次操作,数据是5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

汇编语言课后习题答案___郑晓薇(整理后的)

习题一 1 无符号数: 11010011=211=D3H,01110111=119=77H, 10000011=131=83H, 00101111=47=2FH, 10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H, 00101111=+47=2FH,10101010= -86=AAH 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 0000000100110010+01110101=00 00000110100111+00000110 =0000001000000111=0207H=207 5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码 (2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255 (3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码 (4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码 8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD 码0000001001010100,ASCII码323534H 9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3) -74+29=11010011B,CF=0, SF=1,ZF=0,OF=0 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H

《汇编语言与接口技术》答案习题解答(第三章)

解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 解:

.model small .stack .data bufX dw -7 signX db .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ; .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 解: lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1

微机原理课后答案

1.2 课后练习题 一、填空题 1.将二进制数1011011.1转换为十六进制数为__5B.8H_____。 2.将十进制数199转换为二进制数为____ 11000111____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数36.875转换成二进制是___100100.111____________。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数98.45转换成二进制为__1100010.0111_B、八进制__142.3463________Q、十六进制__62.7333________H。(精确到小数点后4位) 二、选择题 1.堆栈的工作方式是__B_________。 A)先进先出B)后进先出C)随机读写D)只能读出不能写入 2.八位定点补码整数的范围是____D_________。 A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127 3.字长为16位的数可表示有符号数的范围是___B___。 A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768 三、简答题 1.微型计算机系统的基本组成? 微型计算机,系统软件,应用软件,输入输出设备 2.简述冯.诺依曼型计算机基本思想? ●将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 ●指令按其在存储器中存放的顺序执行; ●由控制器控制整个程序和数据的存取以及程序的执行; ●以运算器为核心,所有的执行都经过运算器。 3.什么是微型计算机? 微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4.什么是溢出? 运算结果超出了计算机所能表示的范围。 2.2 一、填空题 1. 8086/8088的基本总线周期由___4____个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为___0.1μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1.把要执行的程序与库文件连接起来形成可执行文件的系统程序是( B ) 。 A.汇编程序 B.连接程序 C.机器语言程序 D.源代码程序 2.在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 ( C )。 A..SS和SP B.DS和DI C.CS和IP D.ES和SI 3.为了使主机访问外设方便起见,外设中的每个寄存器给予一个( C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D.段地址 4.MOV AX,3064H,该指令中源操作数采用的寻址方式是( A )。 A.立即 B.直接 C.寄存器相对 D.寄存器间接 5.换码指令的助记符是( C )。 A. XCHG B. LEAS C.XLAT D. MOV 6.如果A≥B(A、B有符号数)发生转移,应选择的条件转移指令是 ( JGE )。 7.下列符号中,可用作标识符的是( C )。 A.MOV B.AX C.MSG1 D.1ABC 8.X DB 10H DUP(1,2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9.当DF=0时,执行串操作指令MOVSB,变址寄存器SI、DI的值将( C )。 A. 不变 B.减1 C.加1 D.无法确定 10.如下指令可将AX寄存器内容改变的是( A )。 A.AND AX , BX B.TEST AX , BX C.CMP AX , BX D.XCHG AX , AX 11.16位CPU支持的I/O地址范围是( D )。 A.0~0FFFFFH B.0~0FFFFH C.0~0FFFH D.0~0FFH

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

微机原理(第三版)课后练习答案

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

汇编语言课后习题答案郑晓薇后的

汇编语言课后习题答案郑 晓薇后的 Modified by JEEP on December 26th, 2020.

习题一1 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=0101001 0=52H=82 4 5000020A3H,FF94H,00003456H,007FH, FFFFEC00H 6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~ +32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII 码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H 9 (1) 56+63=01110111B, CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0, SF=0,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

微机原理王忠民版课后答案

部分习题答案 (3) 0.1101 1B= 0.84375 = 0.D8H (4) 11110.01 B= 30.25 =1E.4H 3、完成下列二进制数的加减法运算 (1) 1001.11 + 100.01 = 1110.0001110101.0110 (4) 01011101.0110 — 101101.1011 = 101111.1011 4、 完成下列十六进制数的加减法运算 (1) 745CH + 56DFH= D14B H (2) ABF.8H — EF6.AH = 9C28.E H (3) 12AB.F7 + 3CD.05= 1678 .FC H (4) 6F01H — EFD8H= 7F29 H 5、 计算下列表达式的值 103.CEH (3) 18.9 + 1010.1101B + 12.6H — 1011.1001 = 36.525 6、选取字长n 为8位和16位两种情况,求下列十进制数的补码。 (1) X=— 33的补码: ⑵ Y=+ 33的补码: 0010 0001 , 0000 0000 0010 0001 ⑶ Z=— 128 的补码:1000 0000 , 1111 1111 1000 0000 ⑷ N=+ 127的补码: 0111 1111 , 0000 0000 0111 1111 A=— 65的补码: 1011 1111 , 1111 1111 1011 1111 ⑹ B=+ 65的补码: 0100 0001 , 0000 0000 0100 0001 ⑺ C=— 96的补码: 1010 0000 , 1111 1111 1010 0000 (8) D=+ 96的补码: 0110 0000 , 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X 补=1000 0000 0000 0000 H X = — 1000 0000 0000 0000 H =— 32768 (2) [Y 补=0000 0001 0000 0001 H Y = + 0000 0001 0000 0001 H = + 257 (3) [Z 补=1111 1110 1010 0101 H Z= — 0000 0001 0101 1011 H =—347 (4) [A 补=0000 0010 0101 0111 H A= + 0000 0010 0101 0111 H =+ 599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43 + 8 [43]补=00101011B , [8]补=00001000B [43]补+ [8]补=00101011B + 00001000B = 00110011B = 33H 00101011B + 00001000B 00110011B T C s = 0, C D = 0, OF= C S ? C D = 0 ? 0= 0 ??? 无溢出 (1) 43 + 8 33H (无溢出) 第二章 1、 将十进制数转换为二进制和十六进制 (1) 129.75 = 1000 0001.11B = 81.CH (3) 15.625 = 1111.101B = F.AH 2、 将下列二进制数转换为十进制和十六进制 (1) 111010 B= 58 =3A H 计算机中的数值和编码 (2) 218.8125 = 1101 1010.1101B = DA.DH ⑷ 47.15625 = 10 1111.0010 1B = 2F.28 H (2) 1011 1100.111B= 188.875 = BC.E H (2) — 52 + 7 D3 H (无溢出)

相关主题