微机原理答案.docx

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

微机原理答案.docx

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

微机原理答案.docx

微机原理答案

1.解:

自定义字数组如下

BLOCKDW?

?

?

?

?

?

?

?

?

?

(1)MOVBX,14

MOVAX,BLOCK[BX]

(2)MOVBX,OFFSETBLCOK

MOVAX,[BX+14]

(3)MOVBX,OFFSETBLCOK

MOVSI,14

MOVAX,[BX][SI]

2.解:

假设变量名为DAT,指针为0FF20H:

8020H

指针在内存中的存放如下图

DS:

SI

1A00H:

4000H

20H

DAT

1A00H:

4001H

FFH

1A00H:

4002H

20H

1A00H:

4003H

80H

MOVAX,1A00H

MOVDS,AX

MOVSI,4000H

MOVDX,[SI]

ADDSI,2

MOVDX,[SI]

3.解:

2字节指令JMPSHORTOBJ存储如下图。

CS:

0800H

JMPSHORTOBJ

CS:

0801H

所以当前的IP为0800H

JMPSHORTOBJ为段内直接短转移指令,IP←IP+D8,转移范围不能超过-128—+127

转向地址=位移量+IP

(1)OBJ=80H+0800H=0880H

(2)OBJ=0AH+0800H=080AH

(3)OBJ=6BH+0800H=086BH

4.解:

可以先写如下程序段

MOVAX,8000H

MOVBX,0F79H

PUSHAX

PUSHBX

POPCX

下图为执行完程序第四行处堆栈区示意图(栈顶地址为00FFH:

009FH)

SS:

SP

00FFH:

00A0H

00FFH:

009FH

80H

AX

00FFH:

009FH

00H

00FFH:

009FH

0FH

BX

00FFH:

009FH

79H

下图为执行完程序第五行处堆栈区示意图(栈顶地址为00FFH:

009FH)

SS:

SP

00FFH:

00A0H

00FFH:

009FH

80H

AX

00FFH:

009FH

00H

而CX=0F79H

5.解:

DATASEGMENT

DAT1DW2

XDD?

YDD?

ZDD?

WDD?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,WORDPTRZ

MULDAT1

MOVCX,DX

MOVBX,AX

MOVAX,WORDPTRZ+2

MULDAT1

ADDAX,BX

ADCDX,CX

ADDAX,WORDPTRY

ADCDX,WORDPTRY+2

ADDAX,WORDPTRX

ADCDX,WORDPTRX+2

MOVWORDPTRW,AX

MOVWORDPTRW+2,DX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

6.解:

DATASEGMENT

DAT1DW2

XDW1/?

YDW1000H/?

ZDW1000H/?

VDW1000H/?

DATDW?

DAT2DW?

DAT3DW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAX,X

MOVBX,Y

IMULBX

MOVBX,AX

MOVCX,DX

MOVAX,V

CWD

SUBDX,CX

SBBAX,BX

MOVDAT,AX

MOVCX,DX

MOVAX,Z

MOVBX,2

IMULBX

ADDAX,DAT

ADCDX,CX

SUBAX,100H

SBBDX,0

IDIVX

MOVDAT2,AX;数据存放在变量中便于观测

MOVDAT3,DX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

7.解:

DATASEGMENT

XDW?

YDW?

RESULTDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

CMPX,100

JAT0

JMPTI

T0:

MOVAX,X

SUBAX,Y

JMPQUIT

T1:

MOVAX,Y

SUBAX,X

QUIT:

MOVRESULTAX

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

8.解:

N=10,数据存放在变量中便于观测

DATASEGMENT

ARRAYDB0H,12H,0F5H,01H,06H,99H,12H,0F5H,00H,00H

ZERODB?

FSDW?

ZSDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBX,0

MOVDI,0

MOVSI,OFFSETARRAY

AGAIN:

MOVAL,[SI]

INCSI

CMPSI,10

JAQUIT

CMPAL,0

JET0;数据为0

TESTAL,80H

JET1;数据为正数

JMPT2;数据为负数

T0:

INCZERO

JMPAGAIN

T1:

INCBX

JMPAGAIN

T2:

INCDI

JMPAGAIN

QUIT:

MOVZS,BX

MOVFS,DI

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

9.解:

参看教材77页

10.解:

密码字可以理解为是相应字符的ASCII码

DATASEGMENT

BUFINDB20H,20HDUP(?

BUFFERDB10DUP(?

MIMAZIDB43H,47H,48H,46H,59H,44H,5AH,58H,56H,57H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUFIN

MOVAH,0AH

INT21H

LEADI,BUFFER

LEASI,BUFIN

ADDSI,2

MOVCL,10

AGAIN:

MOVAL,[SI]

ANDAL,0FH

MOVBX,OFFSETMIMAZI

XLAT

MOV[DI],AL

INCSI

INCDI

LOOPAGAIN

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

11.解:

假设DX寄存器低字节有数据

提示:

若DX寄存器中的高低字节都有数据,用同样的办法做

DATASEGMENT

CLRDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,00F5H

MOVAX,DX

MOVCH,16

DIVCH

MOVBL,AH

CMPAL,9

JACHULI

ADDAL,30H

JMPSHUCHU

CHULI:

ADDAL,37H

SHUCHU:

MOVDL,AL

MOVAH,2

INT21H

MOVAL,BL

CMPAL,9

JACHULI1

ADDAL,30H

JMPSHUCHU1

CHULI1:

ADDAL,37H

SHUCHU1:

MOVDL,AL

MOVAH,2

INT21H

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

12.解:

此答案作为参考

;.....将BUF中的10个数据中的0抹掉并更新长度.......;

;.....BUF中的第一个元素为缓冲区长度.......;

DATASEGMENT

BUFDB0AH,1,0,3,0,2,5,8,9,0,7

COUNTDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF

MOVBL,[SI]

XORBH,BH

MOVCOUNT,0

INCSI

AGAIN:

MOVAL,[SI]

CMPAL,0

JZCHULI

INCSI

CMPSI,10

JAQUIT

JMPAGAIN

CHULI:

INCCOUNT

PUSHSI

PUSHBX

SUBBX,SI

MOVCL,BL

L:

MOVAH,[SI+1]

MOV[SI],AH

INCSI

LOOPL

POPBX

POPSI

JMPAGAIN

QUIT:

SUBBL,COUNT

MOVSI,0

MOVBUF[SI],BL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

13.解:

参看实验指导书或教材

14.解:

思路为11题的逆过程

2456

DATASEGMENT

BUFINDB20H,20DUP(?

CLRDB0DH,0AH,'$'

DATDB?

?

?

?

CS1DW4096

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETBUFIN

MOVAH,0AH

INT21H

MOVDX,OFFSETCLR

MOVAH,9

INT21H

LEADI,DAT

LEASI,BUFIN

ADDSI,2

MOVCL,4

AGAIN:

MOVAL,[SI]

CMPAL,39H

JATT

SUBAL,30H

JMPT1

TT:

SUBAL,37H

T1:

MOV[DI],AL

INCDI

INCSI

LOOPAGAIN

MOVDX,0

MOVAH,0

MOVAL,[DI]

ADDDX,AX

DECDI

MOVAL,[DI]

MOVCL,16

MULCL

ADDDX,AX

MOVBX,DX

DECDI

MOVAH,0

MOVAL,[DI]

MOVCX,256

MULCX

ADDAX,BX

ADCDX,0

MOVBX,AX

MOVCX,DX

DECDI

MOVAH,0

MOVAL,[DI]

MULCS1

ADDAX,BX

ADCDX,CX

MOVBX,AX

MOVCL,16

XIANSHI:

SHLBX,1

JCNEXT

MOVDL,30H

JMPT0

NEXT:

MOVDL,31H

T0:

MOVAH,2

INT21H

LOOPXIANSHI

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

15.解:

dsegSEGMENT

numdw76,69,84,90,73,88,99,63,100,80

ndw10

s6dw?

s7dw?

s8dw?

s9dw?

s10dw?

dsegENDS

codesegment

mainprocfar

ASSUMECS:

CODE,DS:

dseg

START:

pushds

subax,ax

pushax

movax,dseg

movds,ax

callsub1

ret

mainendp

sub1procnear

pushax

pushbx

pushcx

pushsi

movsi,0

movcx,n

next:

movax,num[si]

movbx,10

divbl

movbl,al

cbw

subbx,6

salbx,1

incs6[bx]

addsi,2

loopnext

popsi

popcx

popbx

popax

ret

sub1endp

codeends

endstart

16.解:

要使用BIOS调用,暂时不解。

17.解:

输入数据如果为221210代表意思为2010-12-22,在DATE查看数据

DATASEGMENT

STR1DB'Whatisthedatetoday?

',0DH,0AH,'$'

BUFINDB20H,20DUP(?

DATEDB?

?

?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,STR1

MOVAH,9

INT21H

LEADX,BUFIN

MOVAH,0AH

INT21H

LEADI,DATE

MOVSI,OFFSETBUFIN

ADDSI,2

MOVCL,3

AGAIN:

MOVAL,[SI]

SUBAL,30H

SHLAL,1

SHLAL,1

SHLAL,1

SHLAL,1

INCSI

MOVAH,[SI]

SUBAH,30H

ADDAL,AH

MOV[DI],AL

INCDI

INCSI

LOOPAGAIN

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

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

当前位置:首页 > 解决方案 > 学习计划

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

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