微机原理与应用答案guet.docx

上传人:b****7 文档编号:10258158 上传时间:2023-02-09 格式:DOCX 页数:18 大小:19.56KB
下载 相关 举报
微机原理与应用答案guet.docx_第1页
第1页 / 共18页
微机原理与应用答案guet.docx_第2页
第2页 / 共18页
微机原理与应用答案guet.docx_第3页
第3页 / 共18页
微机原理与应用答案guet.docx_第4页
第4页 / 共18页
微机原理与应用答案guet.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

微机原理与应用答案guet.docx

《微机原理与应用答案guet.docx》由会员分享,可在线阅读,更多相关《微机原理与应用答案guet.docx(18页珍藏版)》请在冰豆网上搜索。

微机原理与应用答案guet.docx

微机原理与应用答案guet

微机原理及应用答案

《微机原理》习题参考答案

主讲:

张红梅,黄建华辅导:

马金忠

有错误或疑惑的地方请同学们指出,谢谢!

第一章绪论

1.2

①[+65]10=01000001 [+65]补=[+65]原=01000001

②[+115]10=01110011[+115]补=[+115]原=01110011

③[-65]10=11000001 [-65]补=10111111

[-115]10=11110011 [-115]补=10001101

方法:

正数的原码、反码、补码相同

负数的补码在原码的基础上除过符号外,先取反,再加1。

1.   3

①[+120]10=0000000001111000 [+120]补=[+120]原=000000001111000

②[-120]10=1000000001111000[-120]补=1111111110001000

③[+230]10=0000000011100110[+230]补=[+230]原=0000000011100110

④[-230]10=1000000011100110[-230]补=1111111100011010

方法:

与上题相同,只是扩展了位数,用16位表示

1.   4

①56②89 ③-115 ④-7

总结:

知道补码,求原码(或数值)的方法:

如果是正数,直接转换。

如果是负数用以下三种方法:

①   根据[[X]补]补=X求得

例如10001101各位取反11110010加一11110011转换 -115

②   求补的逆运算

例如:

11111001先减一 11111000各位取反10000111转换-7

③-(模+补码转换结果)

例如:

10001101转换 -13模+补码转换结果128-13=115加负号–115

1.   9

本题问题不太明确

例如:

如果手边有手册或是知道产品的型号,就可从手册中查到微处理器的处理位数。

也可以根据系统总线得知。

因为系统总线是公共的数据通道,表现为数据传输位数和总线工作时钟频率。

第二章intel8086微处理器

2.3根据物理地址=段地址*10H+偏移地址得到:

段地址   偏移地址   物理地址

1000H   117AH   1117AH

1025H   0F2AH   1117AH

1109H   00EAH0   1117AH

我们可以看到不同电的段地址,在不同的偏移地址下,可以对应相同的物理地址,也就相同的存储空间。

说明在分配段时是重叠的.

2.6

指令   目的操作数寻址方式   源操作数寻址方式

MOVARRAY,BX   直接寻址   寄存器寻址

ADCCX,ALPHA[BX][SI]   寄存器寻址   基址变址相对寻址

ANDGAMMA[DI],11011000B   寄存器相对寻址   立即数寻址

INCBL   寄存器寻址   隐含寻址

TESTES:

[SI],DX   寄存器间接寻址   寄存器寻址

SBBSI,[BP]   寄存器寻址   寄存器间接寻址

2.7

①   源操作数是立即数寻址,AX=1200H

②   源操作数是寄存器寻址,AX=BX=0100H

③   源操作数是直接寻址,将2000H×10H+1200H=21200H和21201H的内容取出,赋给AX=4C2AH

④   源操作数是寄存器间接寻址,将2000H×10H+0100H=20100H和20101H的内容取出,赋给AX=3412H

⑤   源操作数是寄存器相对寻址,将2000H×10H+0100H+1100H=21200H和21201H的内容取出,赋给AX=4C21H

⑥   源操作数是基址变址寻址,将2000H×10H+0100H+0002H=201002和201003H的内容取出,赋给AX=7856H

⑦   源操作数是基址变址相对寻址,将2000H×10H+0100H+0002H+1100H=21202H和21203H的的内容取出,赋给AX=65B7H

2.8

指令   源操作数寻址方式   物理地址

MOVAX,00ABH   立即数寻址   跟随在指令后,有cs:

ip决定

MOVAX,BX   寄存器寻址   在寄存器中

MOVAX,[100H]   直接寻址   2000H×10H+100H=20100H

MOVAX,[BX]   寄存器间接寻址   2000H×10H+0100H=20100H

MOVAX,[BP]   寄存器间接寻址   1500H×10H+0010H=15010H

MOVAX,[BX+10]注意是10进制   寄存器相对寻址   2000H×10H+0100H+0AH=2010AH

MOVAX,[BX][SI]   基址变址寻址   2000H×10H+0100H+00A0H=201A0H

MOVAX,VAL   直接寻址   2000H×10H+0050H=20050H

MOVAX,ES:

[BX]   寄存器间接寻址   2100H×10H+0100H=21100H

MOVAX,[SI]   寄存器间接寻址   2000H×10H+00A0=200A0H

MOVAX,VAL[BX]   寄存器相对寻址   2000H×10H+0100H+0050H=20150H

MOVAX,VAL[BX][SI]   基址变址相对寻址   2000H×10H+0100H+00A0H+0050H=201F0H

.9

指令   Sp   值

PUSHCX   1FFAH   66H

   1FFBH   55H

PUSHBX   1FFCH   44H

   1FFDH   33H

PUSHAX   1FFEH   22H

   1FFFH   11H

指令   sp   值

POPAX   1FFCH   AX=5566H

      BX=3344H

POPCX   1FFEH   CX=3344H

      SP=1FFEH

2.   10

指令   AX的值

MOVAX,0   AX=0000H

DECAX   AX=0FFFFH

ADDAX,7FFFH   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)

RCLAX,1   AX=36ADH(AF=1)

2.11

0110001010100000

+ 1001110101100000

1 0000000000000000(0000H) AF=0,SF=0,ZF=1,CF=1,OF=0,PF=1

0110001010100000

+ 0100001100100001

 1010010111000001(A5C1H)AF=0,SF=1,ZF=0,CF=0,OF=1,PF=0

2.13

①   BX=009AH

②   BX=0061H

③   BX=00FBH

④   BX=001CH

⑤   BX=0000H

⑥   BX=00E3H(本条语句只对标志位有影响,不存贮结果)

2.14

BX=0110110100010110=6D16H

BX=0000000011011010=00DAH

2.15

①   DX=0000000010111001 DX=0000000001011100=005CH

②   DX=0000000010111001 DX=0000000000010111=0017H

③   DX=0000000010111001 DX=0000010111001000=05C8H

④   DL=10111001    DX=0000000001110010=0072H

⑤   DX=0000000010111001 DX=0010000000010111=2017H

⑥   DL=10111001    DX=0000000011001101=00CDH

⑦   DH=00000000    DX=0000000010111001=00B9H

⑧   DX=0000000010111001 DX=0000010111001100=05CCH CF=0

⑨   DL=10111001    DL=0000000011011100=00DCH CF=1

2.16

方法一:

循环移位          方法二:

逻辑右移

MOVCL,04H           MOVCL,04H

ROLAL,CL           SHRAL,CL

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

3.1①AX=0001H;

②AX=0002H

③   CX=0014H

④   DX=0028H

⑤   CX=0001H

3.2

①ARRAYDB56H,78,0B3H,100

②DATA DW2965H,45H,2965,0A6H

③ALPHA DW0C656H,1278H

④BETADB2DUP(23),5DUP(‘A’),10DUP(1,2),20DUP(?

⑥   STRINGDB‘THISISAEXAMPE’

⑥COUNT EQU 100

3.3

00H

00H

01H

00H

00H

00H

00H

01H

00H

00H

00H

01H

00H

00H

00H

01H

00H

00H

00H

01H

42H

41H

44H

43H

1FH

1DH

(1)          

(2)

                                    

41H

42H

43H

44H

4CH(76)

57H

01H

03H

01H

03H

3.4

DATA_SEG SEGMENT

DATA1DB ‘DATA SEG,MENT’

DATA2DB 72,65,-10

DATA3DB 109,98,21,40

DATA4DB 10DUP(0)

DATA5DB ‘12345’

DATA6 DW 7,9,298,1976

DATA7 DW 785,13475

DATA8 DW DB($-DATA6)-(DATA6-DATA1)

DATA_SEGENDS

3.8

DATA_SEGSEGMENT

APPAY DB 10DUP(29H)

ALPHA DB -25,4,10,76,3

BUFFERDB 100DUP(?

DATA_SEGENDS

3.   9

DATA_SEG SEGMENT

BCD1DB?

?

BCD2DB?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG,ES:

DATA_SEG

START:

MOVAX,DATA_SEG

MOVDS,AX

MOVDS,AX

MOVCL,04H

MOVSI,OFFSETBCD1

MOVAL,[SI]

SALAL,CL

MOVBL,[SI+1]

ANDBL,0FH

ADDAL,BL

MOVBCD2,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.12

DATA_SEG SEGMENT

XDB?

YDB?

WDB?

ZDB ?

RDB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG,ES:

DATA_SEG

START:

MOVAX,DATA_SEG

MOVDS,AX

MOVDS,AX

MOVAL,W

SUBAL,X

CBW

IDIV0AH

MOVR,AH

IMULY

IMULAX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.14

DATA_SEG SEGMENT

STR1DB'THISISADOG'

STR2DB'THISISACOCK'

COUNTDB$-STR2

NUMDB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG,ES:

DATA_SEG

START:

MOVAX,DATA_SEG

MOVDS,AX

MOVDS,AX

MOVES,AX

MOVCH,0

MOVCL,COUNT

CLD

MOVSI,OFFSETSTR1

MOVDI,OFFSETSTR2

REPZ CMPSB

AND SI,000FH

MOVAX,SI

MOVNUM,AL

CODEENDS

ENDSTART

3.19

DATA_SEG SEGMENT

BUF DB'thisisastring','$'

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

  MOVDS,AX

MOVSI,OFFSETBUF

TAKECHAR:

MOVDL,[SI]

CMPDL,'$'

JZDONE

CMPDL,''

JZNEXT

SUBDL,20H

NEXT:

MOVAH,2

INT21H

INCSI

JMPTAKECHAR

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.20

DATA_SEG SEGMENT

 DATX DB ?

 DATY DB ?

 DATZ DB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

  MOVDS,AX

MOVAL,DATX

MOVBL,DATY

  CMP AL,BL

  JS NEXT

  MOVDATZ,AL

  JMPDONE

NEXT:

 MOVDATZ,BL

DONE:

 MOVAH,4CH

   INT21H

CODEENDS

ENDSTART

3.21

DATA_SEG SEGMENT

 DATA DB ?

 DATB DB ?

 DATC DB ?

 DATD DB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

  MOVDS,AX

  CMP DATA,0

  JZ NEXT

  CMPDATB,0

  JZNEXT

  CMPDATC,0

  JZ NEXT

  MOVAL,DATA

  ADDAL,DATB

  ADCAL,DATC

  MOVDATD,AL

  JMPDONE

NEXT:

MOVDATA,0

MOV DATB,0

  MOVDATC,0

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.22程序段是将十六进制数的ASSII码转化为十六进制数.本例是将大写字母A的ASCII变为十六进制数,将结果存入字符变量HEXNUM中。

HEXNUM变量中原来的内容未知,程序段执行后的内容是字符A的十六进制数0A

3.24

DATA_SEG SEGMENT

 N=10

DATA1 DBNDUP(?

 DATA2 DBNDUP(?

 ADR1 DW ?

 ADR2 DW ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

MOVDS,AX

LEASI,DATA1

LEADI,DATA2

MOVCX,N

LOP1:

MOVAH,[SI]

CMPAH,[DI]

INCSI

INCDI

LOOPZLOP1

JNZNOTEQU

MOVAH,0FFH

SAHF

JMPDONE

NOTEQU:

MOVAH,0

SAHF

MOVADR1,SI-1

MOVADR2,DI-1

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.26

DATA_SEG SEGMENT

COUNT=100

BUF DBCOUNTNUP(?

MAXDB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

  MOVDS,AX

MOVSI,OFFSETBUF

MOVCX,COUNT

LOP1:

MOVAH,1

INT21H

MOV[SI],AL

INCSI

LOOPLOP1

MOVSI,OFFSETBUF

MOVCX,COUNT

MOVAL,[SI]

LOP2:

CMPAL,[SI+1]

JANEXT2

XCHGAL,[SI+1]

INCSI

NEXT2:

LOOPLOP2

MOVMAX,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.27

DATA_SEG SEGMENT

BUFDB10 DUP(?

STR1DB‘Doyouwantinputnumber(y/n)?

’,0DH,0AH,’$’

STR2DB‘Pleaseinput thenumbers’,0DH,0AH,’$’

 MAXDB?

 MINDB ?

DATA_SEG ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA_SEG

START:

MOVAX,DATA_SEG

MOVDS,AX

MOVDX,OFFSETSTR1

MOVAH,09H

INT21H

MOVDX,OFFSETSTR2

MOVAH,09H

INT21H

MOVSI,OFFSETBUF

MOVCX,10

LOP1:

MOVAH,1

INT21H

MOV[SI],AL

INCSI

LOOPLOP1

MOVSI,OFFSETBUF

MOVCX,9

MOVAL,[SI]

LOP2:

CMPAL,[SI+1]

JANEXT2

XCHGAL,[SI+1]

INCSI

NEXT2:

LOOPLOP2

MOVMAX,AL

MOVSI,OFFSETBUF

MOVCX,9

MOVAL,[SI]

LOP3:

CMPAL,[SI+1]

JBNEXT3

XCHGAL,[SI+1]

INCSI

NEXT3:

LOOPLOP3

MOVMIN,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.28

DATA SEGMENT

BUFF DB10DUP(?

DATA ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

 MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETBUFF

MOVCX,0AH

LOP1:

MOVAH,7

INT21H

CMPAL,'$'

JZDONE

CMPAL,'A'

JLEDONE

CMPAL,'Z'

JGENEXT1

JMPSHOW

NEXT1:

CMPAL,'a'

JGENEXT2

CMPAL,'z'

JGEDONE

NEXT2:

SUBAL,20H

SHOW:

MOVDL,AL

MOVAH,2

INT21H

LOOPLOP1

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.29

DATA SEGMENT

STRBUF DB'ABCDEFGIJKLMN$OPQRSTUVWSXYZ'

COUNT DB $-STRBUF

ADRBUFDB ?

DATA ENDS

CODE SEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

 MOVAX,DATA

MOVDS,AX

LEASI,STRBUF

MOVCH,0

MOVCL,COUNT

LOP1:

MOVAL,[SI]

CMPAL,'$'

JZ

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

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1