微计算机原理第二版潘名莲习题答案48之后文档格式.docx

上传人:b****6 文档编号:16153961 上传时间:2022-11-21 格式:DOCX 页数:20 大小:58.76KB
下载 相关 举报
微计算机原理第二版潘名莲习题答案48之后文档格式.docx_第1页
第1页 / 共20页
微计算机原理第二版潘名莲习题答案48之后文档格式.docx_第2页
第2页 / 共20页
微计算机原理第二版潘名莲习题答案48之后文档格式.docx_第3页
第3页 / 共20页
微计算机原理第二版潘名莲习题答案48之后文档格式.docx_第4页
第4页 / 共20页
微计算机原理第二版潘名莲习题答案48之后文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微计算机原理第二版潘名莲习题答案48之后文档格式.docx

《微计算机原理第二版潘名莲习题答案48之后文档格式.docx》由会员分享,可在线阅读,更多相关《微计算机原理第二版潘名莲习题答案48之后文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

微计算机原理第二版潘名莲习题答案48之后文档格式.docx

MOVDI,OFFSETDN

MOVCX,CN

REPMOVSDN,SN

ENDM

4-10设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误,并改正之。

(1)ADDVAR1,VAR2(无两内存单元加法指令)

(2)SUBAL,VAR1(字节变量不能和字变量直接相加)

(3)JMPLAB[SI](标号不是立即数)

(4)JNZVAR1(不是程序标号)

(5)JMPNEARLAB(同3)

(6)MOVAL,VAR2(AL不能存字变量)

(1)MOVAX,VAR1

(2)MOVAH,0(3)JMPOFFSETLAB[SI]

ADDAX,VAR2SUBAX,VAR1

(4)MOVSI,VAR1(5)JMPNEARPTRLAB(6)MOVAX,VAR2

JNZTARGET

……

TARGET:

JMP[SI]

4-11已知数据定义如下,问L1和L2等于多少?

B1DB1,2,3,’123’

B2DB0

L1EQU$-B1

L2EQUB2-B1

解:

$=7,∴$-B1=7-0=7

即L1等于7

L2=B2的偏移地址6-B1的偏移地址0=6

4-15用查表法将存放于数据段中的一个有序的十六进制数串(范围:

0~FH)翻译成ASCII码表仍放于数据段中。

DATASEGMENT

XDHEXDB0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

TBASCIIDB‘0123456789ABCDEF’

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAINPROCFAR

START:

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVCX,16

MOVSI,OFFSETXDHEX

MOVBX,OFFSETTBASCII

MOVAH,0

AGAIN:

MOVAL,[SI]

MOVDI,AX

MOVAL,[BX+DI]

MOV[SI],AL

INCSI

LOOPAGAIN

RET

MAINENDP

CODEENDS

ENDSTART

4-16试编写一程序,把X和Y中的大者存于BIG单元,若X=Y,则把其中之一存入BIG单元。

XDW?

YDW?

BIGDW?

DATAENDS

;

------------------------------

MAINPROCFAR

PUSHDS

MOVAX,X

CMPAX,Y

JNCSTOBIG;

无符号数判断,有符号数用JGE

MOVAX,Y

STOBIG:

MOVBIG,AX

ENDMAIN

4-17试编写一程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同显示“MATCH”,反之,则显示“NOMATCH”。

STRING1DB50DUP(?

STRING2DB50DUP(?

MATDB‘MATCH$’

NMATDB‘NOMATCH$’

DATAENDS

CODEEGMENT

ASSUMECS:

DATA,ES:

MAINPROCFAR

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVCX,LENGTHSTRING1

LEASI,STRING1

LEADI,STRING2

LEADX,MAT

REPECMPSB

JEPLAY

LEADX,NOMAT

PLAY:

MOVAH.09

INT21H

RET

MAINENDP

CODEENDS

ENDMAIN

 

4-19假设已编好5个乐曲程序,它们的入口地址(含段首址和偏移地址)存放在数据段中的跳越表MUSICTAB中。

试编写一个管理程序,其功能是:

根据键盘输入的乐曲编号00~04转到所点乐曲入口,执行乐曲程序。

MUSICTABDWOFFSETMUSIC0,SEGMUSIC0

DWOFFSETMUSIC1,SEGMUSIC1

DWOFFSETMUSIC2,SEGMUSIC2

DWOFFSETMUSIC3,SEGMUSIC3

DWOFFSETMUSIC4,SEGMUSIC4

CODEEGMENT

---------------------------------------------------------------

KEYIN:

MOVAH,1

INT21H

SUBAL,30H

MOVCL,4

ROLAL,CL

MOVBL,AL

ADDAL,BL

ADDAX,AX

LEABX,MUSICTAB

MOVSI,AX

JMPDWORDPTR[BX][SI];

见教科书116页,④段间间接寻址

MUSIC0:

MUSIC1:

MUSIC2:

MUSIC3:

MUSIC4:

EXIT:

ENDMAIN

4-21在数据段中存有一字符串(≤80个字符),以回车CR结束。

编一程序统计此字符串的长度,并将它存入数据区LENTH单元,也显示在屏幕上。

设字符串为STRING字节单元开始,程序采用DO_WHILE的循环结构,CX寄存器用作字符串长度计数。

循环结束条件两个:

(1)找到CR,屏幕上显示字符串长度-LENTH。

(2)未找到CR,屏幕上显示“ERROR”。

STRINGDB'

12345678'

DB0DH

DB71DUP(?

LENTHDB?

ERRDB'

ERROR$'

-------------------------------------

MOVES,AX

-------------------------------------------------

MOVDI,OFFSETSTRING

CLD

MOVCX,80

MOVAL,0DH

REPNZSCASB

JNZPLAYER

MOVAX,80

SUBAX,CX

MOVCL,10

DIVCL

MOVDL,AL

ORDL,30H

PUSHAX

MOVAH,2

INT21H

POPAX

MOVDL,AH

MOVAH,02

INT21H

PLAYER:

MOVDX,OFFSETERR

MOVAH,9

----------------------------------------------------

4-22试用串操作指令将一个数组BLOCK(均为字节数)中的奇数和偶数分开存放。

1设数组BLOCK在数据段,程序运行后把数组中的奇数存放在数据段数组PODATA、偶数存放在数据段数组PEDATA中。

2程序分两次扫描,第一次搜索奇数,并存放于PODATA中、第二次搜索偶数,并存放于PEDATA中。

3两次搜索均用FOR语句结构。

DATA 

SEGMENT

BLOCK 

DB 

1,2,3,4,5,6,7,8,9,90,21,33

COUNT 

EQU 

$-BLOCK

PODATA 

DUP(?

PEDATA 

ENDS

---------------------------------

CODE 

MAIN 

PROC 

FAR

 

ASSUME 

CS:

DATA,DS:

PUSH 

DS

MOV 

AX,0

AX

AX,DATA

DS,AX

ES,AX

SI,OFFSET 

BLOCK

DI,OFFSET 

PODATA

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

当前位置:首页 > 小学教育 > 语文

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

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