微机原理及应用黄冰.docx

上传人:b****4 文档编号:3847780 上传时间:2023-05-06 格式:DOCX 页数:84 大小:423.55KB
下载 相关 举报
微机原理及应用黄冰.docx_第1页
第1页 / 共84页
微机原理及应用黄冰.docx_第2页
第2页 / 共84页
微机原理及应用黄冰.docx_第3页
第3页 / 共84页
微机原理及应用黄冰.docx_第4页
第4页 / 共84页
微机原理及应用黄冰.docx_第5页
第5页 / 共84页
微机原理及应用黄冰.docx_第6页
第6页 / 共84页
微机原理及应用黄冰.docx_第7页
第7页 / 共84页
微机原理及应用黄冰.docx_第8页
第8页 / 共84页
微机原理及应用黄冰.docx_第9页
第9页 / 共84页
微机原理及应用黄冰.docx_第10页
第10页 / 共84页
微机原理及应用黄冰.docx_第11页
第11页 / 共84页
微机原理及应用黄冰.docx_第12页
第12页 / 共84页
微机原理及应用黄冰.docx_第13页
第13页 / 共84页
微机原理及应用黄冰.docx_第14页
第14页 / 共84页
微机原理及应用黄冰.docx_第15页
第15页 / 共84页
微机原理及应用黄冰.docx_第16页
第16页 / 共84页
微机原理及应用黄冰.docx_第17页
第17页 / 共84页
微机原理及应用黄冰.docx_第18页
第18页 / 共84页
微机原理及应用黄冰.docx_第19页
第19页 / 共84页
微机原理及应用黄冰.docx_第20页
第20页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理及应用黄冰.docx

《微机原理及应用黄冰.docx》由会员分享,可在线阅读,更多相关《微机原理及应用黄冰.docx(84页珍藏版)》请在冰点文库上搜索。

微机原理及应用黄冰.docx

微机原理及应用黄冰

1章绪论

用8位二进制码,写出以下十进制数的原码和补码表示

说明:

原码:

最高位为符号位,正数符号位为0,负数符号位为1。

补码:

正数的补码与原码相同;负数的补码:

由其原码除符号位维持不变外,其余列位按位取反,末位加1而成。

解:

(1)[+65]原=01000001B注:

65=64+1

[+65]补=[+65]原=01000001B注:

正数补码与原码相同

(2)[+115]原=01110011B注:

115=64+32+16+2+1

[+115]补=[+115]原=01110011B注:

正数补码与原码相同

(3)[-65]原=11000001B注:

65=64+1

[-65]补=10111110B+1B=10111111B注:

除符号位外,按位取反,末位加1

(4)[-115]原=11110011B注:

115=64+32+16+2+1

[-115]补=10001100B+1B=10001101B注:

除符号位外,按位取反,末位加1

用16位二进制码,写出以下十进制数的原码和补码表示。

(1)[+120]原=0000000001111000B注:

120=64+32+16+8

[+120]补=[+120]原=0000000001111000B注:

正数补码与原码相同

(2)[-120]原=1000000001111000B注:

120=64+32+16+8

[-120]补=1111111110000111B+1B=1111111110001000B

注:

除符号位外,按位取反,末位加1

(3)[+230]原=0000000011100110B注:

230=128+64+32+4+2

[+230]补=0000000011100110B注:

正数补码与原码相同

(4)[-230]原=1000000011100110B注:

230=128+64+32+4+2

[-230]补=1111111100011001B+1B=1111111100011010B

注:

除符号位外,按位取反,末位加1

写出以下用补码表示的二进制数的真值。

说明:

正数的补码=原码

负数的补码:

再次求补码取得其原码

解:

(1)00110111正数的补码真值:

32+16+4+2+1=+55

(2)01011001正数的补码真值:

64+16+8+1=+89

(3)10001101负数的补码真值:

11110010B+1B=11110011B=-115

(4)11111001负数的补码真值:

10000110B+1B=10000111B=-7

第2章Intel8086微处置器

在存储器中寄存的数据如下图。

试读出75422H和75424H字节单元的内容是什么?

读出75422H和75424H字单元的内容是什么?

存储器

75420H

13H

1H

78H

2H

9CH

3H

24H

4H

5DH

5H

E6H

解:

75422H字节单元的内容:

9CH

75424H字节单元的内容:

5DH

75422H字单元的内容:

249CH

75424H字单元的内容:

0E65DH

 

段地址和偏移地址为1000H:

117AH的存储单元的物理地址是什么?

而1109H:

00EAH或1025H:

0F2AH的存储单元的物理地址又是什么?

这说明了什么问题?

说明:

物理地址=段地址×10H+偏移地址

解:

1000H:

117AH存储单元的物理地址1000H×10H+117AH=1117AH

1109H:

00EAH存储单元的物理地址1109H×10H+00EAH=1117AH

1025H:

0F2AH存储单元的物理地址1025H×10H+0F2AH=1117AH

说明:

不同的段地址不同的偏移地址能够指向同一个物理地址,即各个逻辑段能够彼此重叠。

在存储器分段结构中,每一个段区最大可占用多少地址范围,什么缘故?

若是在8086的机械中,假设段间不许诺重叠,那么最多可分多少个段区?

解:

假设为8086微处置器,每一个段区最大可占用64KB,因为所有内部寄放器都只有16位。

假设每段64KB,最多可分16个段区,因为8086微处置器有20条地址线,可访问存储器的最大容量为1MB。

若是从存储器的2000H地址开始分派段区,要求数据段占用1KB范围,堆栈段占用512B范围,代码段占用8KB范围。

按数据段、堆栈段和代码段的顺序持续寄存,试画出存储器分段地址分派示用意,图中应写明各段寄放器的内容?

解:

02000H

1KB

DS:

0200

02400H

512B

SS:

0240H

02600H

8KB

CS:

0260H

注:

1KB:

0000000000B~1111111111B

SS:

起始物理地址2000H+1KB=2000H+400H=02400H

512B:

000000000B~111111111B

CS:

起始物理地址2400H+512B=2400H+200H=02600H

指出以下指令的源和目标操作数的寻址方式:

题号

指令

目的操作数的寻址方式

源操作数的寻址方式

(1)

MOVARRAY,BX

直接寻址

寄存器寻址

(2)

ADCCX,ALPHA[BX][SI]

寄存器寻址

带位移的基址变址寻址

(3)

ANDGAMMA[DI],B

带位移的变址寻址

立即寻址

(4)

INCBL

寄存器寻址

(5)

TESTES:

[SI],DX

寄存器间接寻址

寄存器寻址

(6)

SBBSI,[BP]

寄存器寻址

寄存器间接寻址

现有DS=2000H,BX=0100H,SI=0002H,(20200H)=12H,(20201H)=34H,(20202H)=56H,(20203H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明以下各指令执行完后AX寄放器的内容。

题号

指令

AX寄存器的内容

简单解释

(1)

MOVAX,1200H

1200H

立即数赋给AX

(2)

MOVAX,BX

0100H

寄存器BX值赋给AX

(3)

MOVAX,[1200H]

4C2AH

PA=DS×16+1200H=21200H

(4)

MOVAX,[BX]

3412H

PA=DS×16+BX=20100H

(5)

MOVAX,1100H[BX]

4C2AH

PA=DS×16+BX+1100H=21200H

(6)

MOVAX,[BX][SI]

7856H

PA=DS×16+BX+SI=20102H

(7)

MOVAX,1100H[BX][SI]

65B7H

PA=DS×16+BX+SI+1100H=21202H

假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下面源操作数字段的寻址方式是什么?

其物理地址值是多少?

题号

指令

源操作数的寻址方式

源操作数的物理地址

(1)

MOVAX,00ABH

立即寻址

在代码段中,与CS、IP有关

(2)

MOVAX,BX

寄存器寻址

在寄存器中

(3)

MOVAX,[100H]

直接寻址

DS×16+100H=20100H

(4)

MOVAX,[BX]

寄存器间接寻址

DS×16+BX=20100H

(5)

MOVAX,[BP]

寄存器间接寻址

SS×16+BP=15010H

(6)

MOVAX,[BX+10]

带位移的基址寻址

DS×16+BX+10=2010AH

(7)

MOVAX,[BX][SI]

基址变址寻址

DS×16+BX+SI=201A0H

(8)

MOVAX,VAL

直接寻址

DS×16+VAL=20050H

(9)

MOVAX,ES:

[BX]

寄存器间接寻址

ES×16+BX=21100H

(10)

MOVAX,[SI]

寄存器间接寻址

DS×16+SI=200A0H

(11)

MOVAX,VAL[BX]

带位移的基址寻址

DS×16+BX+VAL=20150H

(12)

MOVAX,VAL[BX][SI]

带位移的基址变址寻址

DS×16+BX+SI+VAL=201F0H

设AX=1122H,BX=3344H,CX=5566H,SP=2000H,试分析以下程序段执行后,AX、BX、CX、SP中的内容各为多少?

并画出堆栈转变示用意。

解:

第1条指令

AX=1122H

PUSHAX

BX=3344H

SP→

22H

CX=5566H

11H

SP=1FFEH

第2条指令

PUSHBX

SP→

44H

AX=1122H

33H

BX=3344H

22H

CX=5566H

11H

SP=1FFCH

第3条指令

PUSHCX

SP→

66H

55H

44H

AX=1122H

33H

BX=3344H

22H

CX=5566H

11H

SP=1FFAH

第4条指令

POPAX

SP→

44H

AX=5566H

33H

BX=3344H

22H

CX=5566H

11H

SP=1FFCH

第5条指令

AX=5566H

POPCX

BX=3344H

SP→

22H

CX=3344H

11H

SP=1FFEH

以下程序段中每一条指令执行完后,AX中的十六位进制内容是什么?

指令

AX中的内容

指令

MOVAX,0

AX=0000H

DECAX

AX=0FFFFH

ADDAX,7FFFFH

AX=7FFEH

ADDAX,2

AX=8000H

NOTAX

AX=7FFFH

SUBAX,0FFFFH

AX=8000H

ADDAX,8000H

AX=0000H

ORAX,0BFDFH

AX=0BFDFH

ANDAX,0EBEDH

AX=0ABCDH

XCHGAH,AL

AX=0CDABH

SALAX,1

AX=9B56H(CF=1,PF=1)

1100110110101011算术左移

RCLAX,1

AX=36ADH(CF=1,PF=1,OF=1)

1001101101010110带进位循环左移

循环移位指令不阻碍除CF和OF之外的其他条件标志。

移位指令依照移位后的结果设置SF、ZF和PF位,AF位那么无概念。

RCL:

OF=1最高有效位的值发生转变;PF保留原先的值;

将十六进制数62A0H与以下各个数相加,试给出和数及标志位AF,SF,ZF,CF,OF和PF的状态。

(1)9D60H

和数:

0H

AF=0,SF=0,ZF=1,CF=1,OF=0,PF=1

(2)4321H

和数:

0A5C1H

AF=0,SF=1,ZF=0,CF=0,OF=1,PF=0

从以下各个数中减去4AE0H,试给出差值及标志位AF,SF,ZF,CF,OF和PF的状态。

(1)1234H

(2)9090H

解:

AF=0,SF=1,ZF=0,CF=1,OF=0,PF=0

AF=0,SF=0,ZF=0,CF=0,OF=1,PF=0

假设BX=00E3H,字变量VALUE中寄存的内容为79H,确信以下各条指令单独执行后的结果。

题号

指令

BX寄存器的内容

简单解释

(1)

XORBX,VALUE

009AH

0000000011100011XOR0000000001111001

(2)

ANDBX,VALUE

0061H

0000000011100011AND0000000001111001

(3)

ORBX,VALUE

00FBH

0000000011100011OR0000000001111001

(4)

XORBX,0FFH

001CH

0000000011100011XOR0000000011111111

(5)

ANDBX,0

0000H

(6)

TESTBX,01H

00E3H

TEST指令只影响标志位,不影响结果

(1)XOROSZAPC:

0XXUX0SF=0;ZF=0;PF=1

(2)ANDOSZAPC:

0XXUX0SF=0;ZF=0;PF=0

(3)OROSZAPC:

0XXUX0SF=0;ZF=0;PF=0

(4)XOROSZAPC:

0XXUX0SF=0;ZF=0;PF=0

(5)ANDOSZAPC:

0XXUX0SF=0;ZF=1;PF=1

(6)TESTOSZAPC:

0XXUX0SF=0;ZF=0;PF=0

试写出执行以下指令序列后BX寄放器的内容。

执行前BX=6D16H。

MOVCL,7

SHRBX,CL

解:

BX=6D16H=0110110100010110B

执行后:

0000000011011010B=00DAH

假定DX=00B9H,CL=3,CF=1,确信以下各条指令单独执行后DX中的值。

题号

指令

DX寄存器的内容

简单解释

(1)

SHRDX,1

005CH

00B9H=0000000010111001B逻辑右移

(2)

SARDX,CL

0017H

00B9H=0000000010111001B算术右移

(3)

SHLDX,CL

05C8H

00B9H=0000000010111001B逻辑左移

(4)

SHLDL,1

0072H

B9H=10111001B逻辑左移

(5)

RORDX,CL

2017H

00B9H=0000000010111001B循环右移

(6)

ROLDL,CL

00CDH

B9H=10111001B循环左移

(7)

SALDH,1

00B9H

DH=0算术左移

(8)

RCLDX,CL

05CCH

00B9H=0000000010111001B带进位循环左移

(9)

RCRDL,1

00DCH

B9H=10111001B带进位循环右移

第3章宏汇编语言程序设计

关于下面的数据概念,各条指令单独执行后,有关寄放器的内容是什么?

FLDBDB?

TABLEADW20DUP(?

TABLEBDB'ABCD'

(1)MOVAX,TYPEFLDB;AX=01H;字节类型

(2)MOVAX,TYPETABLEA;AX=02H;字类型

(3)MOVCX,LENGTHTABLEA;CX=14H;DUP概念的变量,分派的单元数

(4)MOVDX,SIZETABLEA;DX=28H;SIZE=LENGTH*TYPE

(5)MOVCX,LENGTHTABLEB;CX=01H;非DUP概念的变量,LENGTH=1

试写出完成以下操作的伪指令语句:

(1)将56H,78,B3H,100寄存在概念为字节变量ARRAY的存储单元中。

ARRAYDB56H,78,0B3H,100

(2)将字数据2965H,45H,2965,A6H寄存在概念为字变量DATA的存储单元中。

DATADW2965H,45H,2965,0A6H

(3)将字节数据56H,C6H,78H,12H寄存在字变量ALPHA的存储单元中,而且不改变数据按字节存储的顺序。

ALPHADW0C656H,1278H

(4)在BETA为首址的存储单元中持续寄存字节数据,2个23,5个'A',10个(1,2),20个空单元。

BETADB2DUP(23),5DUP('A'),10DUP(1,2),20DUP(?

(5)在STRING为首址的存储单元中寄存字符串'THISISAEXAMPE'。

STRINGDB'THISISAEXAMPE'

(6)用符号COUNT替代100。

COUNTEQU100(或COUNT=100)

画图表示以下语句中数据在存储器中的存储情形。

(1)BYTE_VARDB'ABCD',76,57H,3DUP(?

),2DUP(1,3)

(2)WORD_VARDW5DUP(0,1),?

'AB','CD',7965。

(1)从左到右、从上到下为地址增大的方向。

41H

42H

43H

44H

4CH

57H

?

?

?

01H

03H

01H

03H

(2)从左到右、从上到下为地址增大的方向。

00

00

01

00

00

00

01

00

00

00

01

00

00

00

01

00

00

00

01

00

?

?

42

41

44

43

1D

1F

设置一个数据段DATA_SEG,其中持续寄存以下的8个变量,用段概念语句和变量概念语句写出数据段:

(1)DATA1为字符串变量:

'DATASEGMENT'

(2)DATA2为十进制数字字节变量:

72,65,-10

(3)DATA3为十六进制数字字节变量:

109,98,21,40

(4)DATA4为10个零的字节变量

(5)DATA5为数字的ASCII字符字节变量:

12345

(6)DATA6为十进制数的字变量:

7,9,298,1967

(7)DATA7为十六进制数的字变量:

785,13475

(8)DATA8为本段中字变量和字节变量之间的字节单元数之差。

解:

DATASEGMENT

DATA1DB'DATASEGMENT'

DATA2DB72,65,-10

DATA3DB6DH,62H,15H,28H

DATA4DB10DUP(0)

DATA5DB'12345'

DATA6DW7,9,298,1967

DATA7DW0311H,34A3H

DATA8DB$-DATA6-(DATA6-DATA1)

DATAENDS

假设程序中的变量概念如下:

BUF1DB100DUP('A')

BUF2DW1275H,567,0C5H

BUF3DB20DUP(?

BUF4DB7,4,6,9,8

(1)用一条指令将BUF1的偏移地址送入BX。

MOVBX,OFFSETBUF1或LEABX,BUF1

(2)将BUF2的第三字节数据送入CL。

MOVCL,BUF2+2

(3)将A6H送入BUF3的第十个字节单元中。

MOVBUF3+9,0A6H

(4)用伪指令写出BUF1和BUF2二者的总长度(字节数)

COUNTEQUBUF3-BUF1

给出等值语句如下:

ALPHAEQU100

BETAEQU25

GAMMAEQU2

求以下表达式的值:

(1)ALPHA*100+BETA;10025D=2729H

(2)ALPHAMODGAMMA+BETA;100MOD2+25=25D=0019H

(3)(ALPHA+2)*BETA-ALPHA;(100+2)*25–100=2450D=0992H

(4)(BETA/3)MOD5;(25/3)MOD5=03H

(5)BETAAND7;00011001AND00000111=01H

(6)GAMMAOR3;00000010OR00000011=0003H

以下语句中,在存储器中每一个变量分派到多少字节?

VR1DW9;2字节

VR2DW4DUP(?

),2;4*2+2=10字节

VR3EQU100;0字节

VR4DDVR3DUP(?

);100*4=400字节

VR5DB2DUP(?

VR3DUP(0,1));2*(1+100*2)=402字节

VR6DB'HOWAREYOU?

';12字节

试写出一个完整的数据段DATA_SEG,第一把10个紧缩的BCD码29寄存在ARRAY变量字节单元中,紧接着把-25,4,10,76,3寄存在ALPHA数组变量的字单元中,接着留100个空单元作为工作单元用,它概念为字节变量BUFFER。

DATA_SEGSEGMENT

ARRAYDB10DUP(29H)

ALPHADW-25,4,10,76,3

BUFFERDB100DUP(?

DATA_SEGENDS

将寄存在字节变量BCD1中的两个十进制数的ASCII码归并为一字节紧缩型BCD码,存入字节变量BCD2,试编写程序。

DATASEGMENT

BCD1DB'34'

BCD2DB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BCD1

MOVCL,4

SALAL,CL

MOVBL,B

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2