微型计算机原理与应用第四版课后答案.docx

上传人:b****8 文档编号:9654952 上传时间:2023-05-20 格式:DOCX 页数:9 大小:27.51KB
下载 相关 举报
微型计算机原理与应用第四版课后答案.docx_第1页
第1页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第2页
第2页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第3页
第3页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第4页
第4页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第5页
第5页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第6页
第6页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第7页
第7页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第8页
第8页 / 共9页
微型计算机原理与应用第四版课后答案.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微型计算机原理与应用第四版课后答案.docx

《微型计算机原理与应用第四版课后答案.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与应用第四版课后答案.docx(9页珍藏版)》请在冰点文库上搜索。

微型计算机原理与应用第四版课后答案.docx

微型计算机原理与应用第四版课后答案

微机原理第七章答案

7.3设AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H,下述程序执行后AX,BX,CX,DX4个通用寄存器内容是多少?

画出堆栈存储器的物理地址及存储内容和SP指向的示意图。

PUSHAX

PUSHBX

PUSHCX

POPBX

POPAX

POPDX

参考答案:

(BX)=5566H,(AX)=3344H,(DX)=1122H,(CX)=5566H

堆栈段物理地址=SS*16(左移4位)+SP

 

 

7.4设SP=0040H,如果用进栈指令存入5个数据,则SP=0036H,若用出栈指令取出两个数据,则SP=003AH。

7.5将表中程序段各指令执行后AX的值用十六进制数填入表中

参考答案:

程序段

AX

程序段

AX

MOVAX,0

0

ORAX,3FDFH

BFDFH

DECAX

FFFFH

ANDAX,0EBEDH

ABCDH

ADDAX,7FFFH

7FFEH

XCHGAH,AL

CDABH

ADCAX,1

8000H

SALAX,1

9B56H

NEGAX

8000H

RCLAX,1

36ADH

7.6用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0H,通用寄存器的值为0。

参考答案:

逻辑地址=段基址:

段内偏移地址

BP以SS为默认段基址,其余寄存器以DS为默认段基址

ES:

为段前缀,以ES为段基址

 

指令

存储器操作数逻辑地址

SUB[BP],AL

0FC0H:

0000H

MOV[BX],BH

1000H:

0000H

MOV[DI],DL

1000H:

0000H

MOVES:

[SI],BL

2000H:

0000H

ADD500H[BP],AH

0FC0H:

0500H

SUB[SI-300H],AL

1000H:

FD00H

MOV1000H[DI],DL

1000H:

1000H

MOV[BX-8],CL

1000H:

FFF8H

MOVES:

1000H[DI],CH

2000H:

1000H

MOV[BP+SI],DH

0FC0H:

0000H

MOV[BX+DI],DL

1000H:

0000H

7.7试给出执行完下列指令后OF、SF、ZF、CF4个可测试标志位的状态(用十六进制给出FLAG的值,其余各位为0)

(1)MOVAX,2345H

(2)MOVBX,5439H

ADDAX,3219HADDBX,456AH

(3)MOVCX,3579H(4)MOVDX,9D82H

SUBCX,4EC1HSUBDX,4B5FH

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

0

CF

溢出

方向

中断

陷阱

符号

为零

辅进

奇偶

进位

参考答案:

(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF)

(1)AX=555EHFLAG=0000H

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

0

CF

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

(2)BX=99A3HFLAG=0894H

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

0

CF

0

0

0

0

1

0

0

0

1

0

0

1

0

1

0

0

(3)CX=E6B8FLAG=0081H

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

0

CF

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

1

(4)DX=5223FLAG=0014H

OF

DF

IF

TF

SF

ZF

AF

PF

0

CF

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

7.8AX中有一负数,欲求其绝对值,若该数为补码,则使用指令NEGAX;若为原码则用指令ANDAX,7FFFH。

7.9分别写出实现如下功能的程序段:

(1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成一个新字。

(注意:

左移右移操作)

ANDAX,0FF0H

MOVCL,04H

SHLAX,CL

ANDBL,0FH

ANDDH,0F0H

SHRDH,CL

SHLBL,CL

ORAL,DH

ORAL,BL

(2)将CX中间8位取反,其余位不变

XORCX,0FF0H

(3)将数据段以BX为偏移地址的连续3单元中的无符号数求和。

MOVCX,3

MOVAL,0

LAB:

ADDAL,[BX]

ADCAH,00H;(注意字节单元的和可能超过一个字节,故这里和扩展至AH)

INCBX

LOOPLAB

(4)将数据段中以BX为偏移地址的连续4单元中的内容颠倒过来

MOVCX,2;(4/2单元个数除2,循环计数)

MOVSI,BX

ADDSI,3;(指向最后一个数据单元,首地址+单元个数-1)

LAB:

MOVAL,[BX]

XCHGAL,[SI]

MOV[BX],AL

INCBX

DECSI

LOOPLAB

(5)将BX中的4位压缩BCD数用非压缩数形式按序放在AL,BL,CL和DL中

MOVCL,4(注意先后次序,不能用其它寄存器)

MOVDL,BL

ANDDL,0FH

MOVAL,BH

SHRAL,CL

XCHGBH,BL

ANDBL,0FH

SHRBH,CL

MOVCL,BH

(6)不用乘法指令实现AL(无符号数)乘以20

AL*(24+22)(24左移4位,22左移2位)

MOVAH,0

MOVCL,2

SALAX,CL;进行乘4操作

MOVBX,AX;保留乘4中间结果

SALAX,CL;再移2次,相当于乘16

ADDAX,BX

7.10一段数据定义为:

DATASEGMENT

S1DB0,1,2,3,4,5

S2DB‘12345’

COUNT=$-S1

NBDB3DUP

(2)

NWDW120,-256

PDW-1

DATAENDS

(1)画出该数据段数据存储形式(注意:

符号常量COUNT不分配存储单元)

地址

内容

S1-0000H

00H

0001H

01H

0002H

02H

0003H

03H

0004H

04H

0005H

05H

S2-0006H

31H

0007H

32H

0008H

33H

0009H

34H

000AH

35H

NB-000BH

02H

000CH

02H

000DH

02H

NW-000EH

78H

000FH

00H

0010H

AAH

0011H

FDH

P-0012H

FFH

0013H

FFH

 

(2)在下表中填写各变量的偏移地址和各变量的值

变量名

偏移地址

变量值

变量名

偏移地址

变量值

S1

0000H

00H

NW

000EH

0078H

S2

0006H

31H

P

0012H

FFFFH

NB

000BH

02H

(3)填写表中程序段各指令执行后。

目的寄存器的值,并指出源操作数所使用的寻址方式(注意:

COUNT是符号常量是立即数)

程序段

目的寄存器的值

源操作数的寻址方式

MOVBX,OFFSETS1+3

0003H

立即寻址

MOVSI,OFFSETS2

0006H

立即寻址

MOVCL,COUNT

000BH

立即寻址

MOVBP,NW+2

FDAAH

直接寻址

MOVDX,WORDPTRNB

0202H

直接寻址

MOVAL,[SI+3]

34H

变址寻址

MOVAH,[SI+BX+1]

35H

基址变址寻址

MOVCH,BYTEPTRNW+3

FDH

直接寻址

(4)改正下列不正确的指令错误

a.MOVAX,S1改正MOVAX,WORDPTRS1

b.MOVBP,OFFSETS2改正MOVBX,OFFSETS2

MOVCL,[BP]MOVCL,[BX]

c.MOVSI,OFFSETNB改正MOVSI,OFFSETNB

MOV[SI],‘+’MOVBYTEPTR[SI],‘+’

d.MOVDL,NW+2改正MOVDL,BYTEPTRNW+2

e.MOVDI,CH改正MOVDI,CX

f.MOVBX,OFFSETS1改正MOVBX,OFFSETS1

MOVDH,BX+3MOVDH,[BX+3]

g.INCCOUNT改正MOVBX,COUNTINCBX(符号常数不能加1)

h.MOVNB,S2改正MOVAL,S2MOVNB,AL(两个内存变量不能直接传送)

i.MOVAX,[BX+S1]改正MOVAX,WORDPTR[BX+S1]

j.ADDAX,[DX+NW]改正ADDAX,[BX+NW]

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

当前位置:首页 > 表格模板 > 合同协议

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

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