微原作业答案

更新时间:2023-03-15 11:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章习题答案

3. 填空:

(1) (1234)10=( )2=( )16

(2) (34.6875)10=( )2=( )16 (3) (271.33)10=( )2=( )16

(4) (101011001001)2=( )10=( )16 (5) (1AB.E)16=( )10=( )2 (6) (10101010.0111)2=( )10=( )16 【解】

(1) (1234)10=( 10011010010 )2=( 4D2 )16 (2) (34.6875)10=( 100010.1011 )2=( 22.B )16 (3) (271.33)10=( 100001111.010101 )2=( 10F.54 )16 (4) (101011001001)2=( 2761 )10=( AC9 )16

(5) (1AB.E)16=( 427.875 )10=(110101011.111 )2

(6) (10101010.0111)2=( 170.4375 )10=( AA.7 )16

4. 已知X=36,Y=-136,Z=-1250,请写出X、Y、Z的16位原码、反码和补码。 【解】

[X]原=0000 0000 0010 0100 [Y]原=1000 0000 1000 1000 [Z]原=1000 0100 1110 0010 [X]反=0000 0000 0010 0100 [Y]反=1111 1111 0111 0111 [Z]反=1111 1011 0001 1101 [X]补=0000 0000 0010 0100 [Y]补=1111 1111 0111 1000

[Z]补=1111 1011 0001 1110

5. 已知[X]补=01010101B,[Y]补=10101010B,[Z]补=1000111111111111B,求X、Y、Z及X+Y、Y-Z的十进制值为多少?

【解】Y-Z运算时Y需要扩展符号位 X=85 Y=-86 Z=-28673

X+Y=01010101B+10101010B=11111111B=-1 Y-Z=11111111 10101010B-10001111 11111111B

=11111111 10101010B+01110000 00000001B =0110 1111 1010 1011B =28587

第二章习题答案

5. 求出下列运算后各个标志的状态,并说明进位标志和溢出标志的区别。 (1) 1278H + 3469H (2) 54E3H - 27A0H

(3) 3881H + 3597H (4) 01E3H - 01E3H

【解】CF进位标志,反映在运算结果的最高位有无进位或借位。OF溢出标志,反映运算结果是否超出了带符号数的表数范围。机器实际处理时判断是否溢出的方法是根据最高位的进位(CF)与次高位的进位是否相同来确定,若两者不相同则OF=1(表示有溢出),否则OF=0

(表示无溢出)。 (1)

0001 0010 0111 1000

+ 0011 0100 0110 1001 0100 0110 1110 0001 运算后各个标志的状态:

OF DF IF 0 (2)

0101 0100 1110 0011 - 0010 0111 1010 0000 0010 1101 0100 0011 运算后各个标志的状态:

OF DF IF 0 (3)

0011 1000 1000 0001 + 0011 0101 1001 0111 0110 1110 0001 1000 运算后各个标志的状态:

OF DF IF 0 (4)

0000 0001 1110 0011 - 0000 0001 1110 0011 0000 0000 0000 0000 运算后各个标志的状态:

OF DF IF 0 TF SF ZF 0 1 -- AF 0 -- PF 1 -- CF 0 TF SF ZF 0 0 -- AF 0 -- PF 1 -- CF 0 TF SF ZF 0 0 -- AF 0 -- PF 0 -- CF 0 TF SF ZF 0 0 -- AF 1 -- PF 1 -- CF 0 7. 8086CPU使用的存储器为什么要分段,怎样分段?为什么要设置段寄存器,有几个段寄存器?各段寄存器有什么意义?

【解】8086 CPU内部数据结构是16位的,即所有的寄存器都是16位的,而外部寻址空间为1MB,即需要20位地址线。为了能用内部寄存器中的16位地址来寻址1MB空间,8086将1MB空间以16字节为一个内存节,共分成64K个节。节的起始地址分别为00000H、00010H、00020H、?、FFFF0H,称为段基址。节的起始地址的后4位二进制数为全0,称为节的段地址。

用于存放段地址的寄存器称为段寄存器,根据其主要用途,分为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。

代码段寄存器CS:用来存放代码段存储区域的起始地址。

数据段寄存器DS:数存放程序的数据存储区的起始地址。

堆栈段寄存器SS:用来存放堆栈存储区的起始地址。由堆栈段寄存器SS与堆栈指针寄存器SP来确定当前堆栈指令的操作地址。

附加段寄存器ES:附加段是为某些字符串操作指令存放目的操作数而设置的一个附加的数

据段,附加段寄存器用来存放该附加数据段存储区域的起始地址。

15. 设CS=1200H,IP=0FF00H,此时指令的物理地址是多少?指向这一物理地址的CS和IP的值是惟一的吗?

【解】指令的物理地址:12000H+0FF00H=21F00H

指向这一物理地址的CS和IP的值不是惟一的。 16. 若CS=1000H,指出当前代码段可寻址的存储空间的大小和地址范围。 【解】当前代码段可寻址的存储空间的大小:64KB

当前代码段可寻址的存储空间的地址范围:10000H~1FFFFH 第四章习题答案

2. 指出下列指令中的非法指令。

(1) MOV BX,AL (3) PUSH 4567H

(5) ADD AL,148H (7) MOV BH,SI

【解】非法指令: (1) MOV BX,AL

(2) MOV CS,2000H (4) XCHG VAR1,VAR2 (6) MOV DS,2000H (8) SUB 38H,AL

BX和AL的长度不一致

(2) MOV CS,2000H (3) PUSH4567H (4) XCHG VAR1,VAR2 (5) ADD AL,148H (6) MOV DS,2000H

CS段寄存器不能作目的操作数

只能将寄存器或存储单元的内容压入堆栈,不能是立即数 两个存储单元之间不能直接交换数据

运算溢出

立即数不能直接传送给DS段寄存器

(7) MOV BH,SI BH和SI的长度不一致 (8) SUB 38H,AL 目的操作数不能是立即数

3. 若SP=2000H,AX=3355H,BX=4466H,试指出下列指令或程序段执行后有关寄存器的内容。

(1) PUSH AX 执行后AX=?,SP=?

(2) PUSH AX PUSH BX POP DX

POP CX

执行后AX=?,CX=?,DX=?,SP=?

【解】(1) 执行后AX=3355H,SP=1FFEH

(2) 执行后AX=3355H,CX=3355H,DX=4466H,SP=2000H 4. 请按下面的要求写出相应的汇编指令或指令序列。

(1) 将1234H送入DS中。

(2) 将5678H与AX中的数相加,结果放在AX中。 (3) 将DATAX和DATAY相加,其和放在DATAY中。 (4) 将AX中的高4位变为全0。 (5) 将BX中的低2位变为全1。 (6) 将CX中的D3~D7位取反。

【解】

(1) MOV AX,1234H

MOV DS,AX

(2) ADD AX,5678H (3) MOV AX,DATAX

ADD AX,DATAY MOV DATAY,AX

(4) AND AX,0FFFH (5) OR AX,0003H

(6) 方法一:XOR CX,00F8H

方法二:

MOV AX,CX AND AX,07H XOR CX,0FFH AND CX,0FFF8H ADD CX,AX

9. 执行下列程序段,指出各相关寄存器的内容。

MOV DEC SUB AND MOV SAL ADD

AX,0A0BH AX AX,0FFH AX,00FFH CL,3 AL,CL AL,25H

XCHG AL,AH PUSH AX POP INC MOV DEC SUB AND MOV SAL ADD

BX BL

AX,0A0BH AX

AX,0FFH CL,3 AL,CL AL,25H

;AX:0A0BH ;AX:0A0AH ;AX:090BH ;AX:000BH ;CL:03H ;AX:0058H ;AX:007DH

;AX:7D00H ;AX:7D00H ;BX:7D00H ;BX:7D01H

【解】各相关寄存器的内容:

AX,00FFH

XCHG AL,AH PUSH AX POP INC

BX BL

10. 用串操作指令将100H个字符从2100H处搬到1000H处,并且从中检索与AL中所存字符相同的存储单元,并将该单元的内容替换成空格,本程序只替换检索到的第一个相同的单元。请在下列空格中填入合适的指令,使程序段完成上述功能。

MOV SI,2100H (1) MOV CX,100H

CLD

(2) MOV DI,1000H MOV CX,100H (3) JNZ K1 (4) MOV [DI],20H K1: ┇

【解】

(1) MOV DI,1000H (2) REP MOVSB

(3) REPNE SCASB (4) DEC DI 第五章习题答案

1. 下列语句在存储器中分别为变量分配多少字节?

VR1 VR2 CONT VR3 VR4 VR5

DW 9

DW 4 DUP(?) EQU 10

DD CONT DUP(?)

DB 2 DUP(?,CONT DUP(0)) DB ‘HOW ARE YOU?’

【解】VR1:2B ; VR2:8B ; CONT:1B ; VR3:40B; VR4:22B; VR5:12B

2. 根据下列数据定义,写出各条指令执行后的结果

TABLE DW 100 DUP(?)

ARRAY DB ‘ABCD’ RES DB ?

(1) MOV AX,TYPE RES AX=( ) (2) MOV BX,TYPE TABLE BX=( ) (3) MOV CX,LENGTH TABLE CX=( ) (4) MOV SI,SIZE TABLE SI=( ) (5) MOV

DI,LENGTH ARRAY DI=( )

【解】(1) AX=1 (2) BX=2 (3) CX=100 (4) SI=200 (5) DI=4

7. 对下面程序进行注释,并说明其功能。

DATA A

DATA CODE

SEGMENT DB ‘123ABC’ ENDS SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV

MOV

AX,DATA DS,AX

LEA BX,A

本文来源:https://www.bwwdw.com/article/cx7v.html

Top