微机原理与接口技术 第四章 课后答案文档格式.docx

上传人:b****4 文档编号:7704515 上传时间:2023-05-08 格式:DOCX 页数:19 大小:19.41KB
下载 相关 举报
微机原理与接口技术 第四章 课后答案文档格式.docx_第1页
第1页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第2页
第2页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第3页
第3页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第4页
第4页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第5页
第5页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第6页
第6页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第7页
第7页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第8页
第8页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第9页
第9页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第10页
第10页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第11页
第11页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第12页
第12页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第13页
第13页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第14页
第14页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第15页
第15页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第16页
第16页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第17页
第17页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第18页
第18页 / 共19页
微机原理与接口技术 第四章 课后答案文档格式.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术 第四章 课后答案文档格式.docx

《微机原理与接口技术 第四章 课后答案文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术 第四章 课后答案文档格式.docx(19页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术 第四章 课后答案文档格式.docx

3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_VARDB‘BYTE’,12,-12H,3DUP(0,?

2DUP(1,2),?

41H

0CH

F4H

⑵WORD_VARDW5DUP(0,1,2),?

-5‘BY’,’TE’,256H

(1)

(2)

4.设程序中的数据定义如下:

PARTNODW?

PNAMEDB16DUP(?

COUNTDD?

PLENTHEQU$-PARTNO

问PLENTH的值为多少?

它表示什么意义?

PLENTH的值为22(16H)。

表示当前位置与PARTNO之间有22个字节空间。

5.设程序中的数据定义如下:

LNAMEDB30DUP(?

ADDRESSDB30DUP(?

CITYDB15DUP(?

CODE_LISTDB1,7,8,,3,2

⑴用一条MOV指令将LNAME的偏移地址放入AX;

⑵用一条指令将CODE_LIST的头两个字节的内容放入SI:

⑶写一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。

(1)MOVAX,OFFSETLNAME

(2)MOVSI,WORDCODE_LIST

(3)CODE_LENGTHEQU$-CODE_LIST

6.对于下面数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDBDB?

TABLEADW20DUP(?

TABLEBDB‘ABCD’

⑴MOVAX,TYPEFLDB

⑵MOVAX,TYPETABLEA

⑶MOVCX,LENGTHTABLEA

⑷MOVDX,SIZETABLEA

⑸MOVCX,LENGTHTABLEB

(1)AX=1

(2)AX=2

(3)CX=14H

(4)DX=28H

(5)CX=1

7.内存的一个区域中有100个字符是用小写字母表示的,试编写一个程序,把它们转换成大写字母,并送屏幕显示。

参考程序如下:

MOVCX,0064H

AA:

MOVDL,[SI]

ADDDL,20H

MOV[SI],DL

MOVAH,02H

INT20H

INCSI

LOOPAA

HLT

8.AX寄存器中有4位压缩方式的BCD码数字,试编写一个程序将4个数字分开,并分别存入BH、BL、CH和CL寄存器中。

……

MOVDX,AX

MOVCL,04H

ROLAX,CL

ANDDX,0F0FH

MOVBL,DH

MOVCL,DL

ANDAX,0F0FH

MOVBH,AL

MOVCH,AH

9.编一段程序,使在用STRING开头的数据区中查找字符串WE,数据区以$符作为结束符号。

如查到,给出字符所在地址;

如查不到,给出NOTFOUND提示。

(假设最多有1个WE字符串)

DATASEGMENT

STRING:

DB‘ABCWE5$’

RE:

DB‘NOTFOUND$’

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

BEGIN:

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

LEASI,STRING

AA:

MOVAL,[SI]

CMPAL,’$’

JZNEXT

CMPAAL,’W’

JNZNEXT1

INCSI

MOVAL,[SI]

CMPAL,’E’

JNZAA

DECSI

MOVBX,SI

MOVCL,04H

MOVDH,04H

AA1:

ROLBX,CL

MOVDL,BL

ANDDL,0FH

MOVAH,02H

INT20H

DECDH

JNZAA1

JMPNEXT2

NEXT1:

JMPAA

NEXT:

LEADX,RE

MOVAH,09H

NEXT2:

MOVAH,4CH

INT21H

CODE:

ENDS

ENDBEGIN

10.从键盘输入的数字和字符都是以ASCII码方式存入内存,现要求从键盘输入两位16进制数,并在屏幕上显示出对应的二进制数。

试编一个程序实现此功能。

参考程序段如下:

MOVAH,07H

CMPAL,3AH

JCBB

SUBAL,07H

BB:

SUBAL,30H

MOVBH,AL

JCBB1

BB1:

MOVBL,AL

MOVCX,0016H

SHLBX,1

JCNEXT1

MOVDL,’0’

HLT

NEXT1:

MOVDL,’1’

MOVAH,02H

INT20H

LOOPAA

HLT

11.一个班级共有学生45人,在内存中有一个按学号排列的成绩表。

试编一个程序,实现按成绩高低并注有学号的有序表,如果有成绩相同的则按学号先后排序。

假设:

成绩表的起始地址符号:

ABC,学号的起始地址符号:

ABC1,参考程序段如下:

LEASI,ABC

MOVDI,OFFSETABC1

MOVCX,002DH

DECCX

AA:

MOVBX,CX

AA1:

MOVAL,[SI]

CMPAL,[SI+1]

JGEAA2

XCHGAL,[SI+1]

MOV[SI],AL

MOVAH,[DI]

XCHGAH,[DI+1]

MOV[DI],AH

AA2:

ADDSI,0001H

ADDDI,0001H

LOOPAA1

MOVCX,BX

LOOPAA

HLT

12.编一个程序,使从键盘上输入一串字符,以回车符结束,然后按字母、数字和其它符号三类统计各自的个数,在屏幕上显示统计结果。

注释:

以下程序中BL用于存放统计的字母个数,字母的ASCII码区间:

41H~5AH及61H~7AH;

BH用于存放统计的数字个数,数字的ASCII码区间:

30H~39H;

DH用于存放统计的其它符号的个数。

MOVBH,00H

MOVSI,1000H

MOV[SI],AL

CMPAL,’$’

INCBH

JMPAA

NEXT:

MOVCL,BH

MOVCH,00H

MOVSI,1000H

MOVBX,0000H

MOVDH,00H

AA0:

CMPAL,30H

JNCNEXT1

AA1:

INCDH

LOOPAA0

JMPNEXTE

NEXT1:

CMPAL,3AH

JNCNEXT2

INCBH

INCSI

LOOPAA0

JMPNEXTE

NEXT2:

CMPAL,41H

JCAA1

CMPAL,5BH

JNCAA2

AA3:

INCBL

LOOPAA0

AA2:

CMPAL,61H

CMPAL,7BH

JNCAA1

JMPAA3

NEXTE:

MOVDL,BL

MOVDL,BH

MOVDL,DH

13.有一个首地址为MEM的100D字数组,试编写程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。

movsi,offsetMEM

movcx,0064h

movbl,00h;

记数组中间0项的个数

movbh,01h;

后面存在不为0数的标记

aa:

movax,[si]

cmpax,0000h

jnznext1

cmpbh,01h

jzaa3

jmpaae

aa3:

incbl

pushcx

deccx

movdi,si

movbh,00h

aa1:

movax,[di+2]

mov[di],ax

adddi,0002h

jzaa2

movbh,01h

aa2:

loopaa1

popcx

jmpaa

next1:

addsi,0002h

loopaa

movcx,bx

shlbx,01

subsi,bx

movax,0000h

cc:

mov[si],ax

loopcc

aae:

hlt

14.在STRING到STRING+99单元中存放着一个字符串,试编制一个程序测试该字符串中是否存在数字,如有则把CL的第5位置1,否则将该位置0。

MOVCX,100

MOVSI,OFFSETSTRING

CMPAL,30H

JCNEXT

CMPAL,3AH

JNCNEXT

ORAH,20H

JMPNEXT1

NEXT:

ANDAH,0DFH

INCSI

NEXT1:

MOVCL,AH

15.试编写一个程序把AX中的十六进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的4个字节中。

例如:

当AX=2A49H时,程序执行完后,MEM中的4个字节的内容分别是39H、34H、41H、32H.

DATASEGMENT

MEMDB4DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

START:

XORAX,AX

PUSHAX

MOVAX,DATA

MOVDS,AX

MOVDH,04H

MOVBX,OFFSETMEM

AA1:

ANDDL,0FH

ADDDL,30H

CMPDL,3AH

JCNEXT

ADDDL,07H

NEXT:

MOV[BX],DL

INCBX

RORAX,CL

DECDH

JNZAA1

INT21H

CODEENDS

ENDSTART

16.设在A、B和C单元中分别存放着三个数。

若三个数都不是0,则求出三个数之和存放在D单元中;

若三个数中有一个为0,则把其他两个单元也清0。

试编写此程序。

DATASEGMENT

ADB?

BDB?

CDB?

DDB?

MOVAL,A

CMPAL,00H

JZNEXT

MOVAL,B

MOVAL,C

ADDAL,B

ADDAL,C

MOVD,AL

JMPNEXT1

MOVA,00H

MOVB,00H

MOVC,00H

NEXT1:

INT21H

ENDSTART

17.下面程序段有错吗?

若有,请指出错误。

CRAYPROC

PUSHAX

ADDAX,BX

RET

ENDPCRAY

程序段有错。

在调用子程序时,断点地址压入堆栈,而子程序内部修改了堆栈指针,子程序结束时有可能返回不到原断点处。

18.编写子程序嵌套结构的程序,把整数分别用二进制形式显示出来。

主程序:

把整数字变量VAL1存入堆栈,并调用子程序:

子程序:

从堆栈中取出VAL1;

调用二进制显示程序显示出与其等效的二进制数;

输出8个空格。

子程序名BINDISP;

子程序中的嵌套子程序名DISP,参考程序如下:

BINDISPPROCNEAR

ADDSP,0004H

POPAX

SUBSP,0006H

MOVCX,0010H

AA:

SHLAX,01

CALLDISP

LOOPAA

MOVCX,0008H

AA1:

MOVDL,00H;

空格的ASCII码

MOVAH,02H

INT20H

LOOPAA1

RET

BINDISPENDS

DISPPROCNEAR

JCNEXT

MOVDL,30H;

0的ASCII码

MOVAH,02H

INT20H

JMPNEXT1

NEXT:

MOVDL,31H;

1的ASCII码

POPAX

NEXT1:

RET

DISPENDP

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

当前位置:首页 > 农林牧渔 > 林学

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

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