微机接口答案文档格式.docx

上传人:b****6 文档编号:17373001 上传时间:2022-12-01 格式:DOCX 页数:91 大小:355.20KB
下载 相关 举报
微机接口答案文档格式.docx_第1页
第1页 / 共91页
微机接口答案文档格式.docx_第2页
第2页 / 共91页
微机接口答案文档格式.docx_第3页
第3页 / 共91页
微机接口答案文档格式.docx_第4页
第4页 / 共91页
微机接口答案文档格式.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

微机接口答案文档格式.docx

《微机接口答案文档格式.docx》由会员分享,可在线阅读,更多相关《微机接口答案文档格式.docx(91页珍藏版)》请在冰豆网上搜索。

微机接口答案文档格式.docx

LEABX,D

LDSSI,E

LESDI,E

MOVAL,AAL=24H

MOVDX,CDX=1234H

XCHGDL,ADL=24H,A=34H

MOVBX,OFFSETBBX=2

MOVCX,3[BX]CX=5550H

LEABX,DBX=000EH

LDSSI,EDS=1200H,SI=459AH

LESDI,EES=1200H,DI=459AH

6.指出下列指令中哪些是错误的,错在什么地方。

(1)MOVDL,AX

(2)MOV8650H,AX(3)MOVDS,0200H

(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV[BX+SI+3],IP

(7)MOVAX,[BX][BP](8)MOVAL,ES:

[BP](9)MOVDL,[SI][DI]

(10)MOVAX,OFFSET0A20H(11)MOVAL,OFFSETTABLE

(12)XCHGAL,50H(13)INBL,05H(14)OUTAL,0FFEH

(1)长度不匹配

(2)立即数不能做目的操作数

(3)段寄存器不能用立即数赋值(4)两个内存单元不能直接传送数据

(5)IP不能用指令直接修改(6)指令中不能出现IP

(7)BX/BP应与SI/DI搭配(8)正确

(9)SI/DI应与BX/BP搭配(10)OFFSET后应跟内存单元

(11)偏移地址为16位,AL长度不够(12)立即数不能用于XCHG

(13)IN必须用AL/AX(14)操作数顺序反向;

地址应为8位

7.已知当前数据段中有一个十进制数字0~9的7段代码表,其数值依次为40H,79H,24H,

30H,19H,12H,02H,78H,00H,18H。

要求用XLAT指令将十进制数57转换成相应的

7段代码值,存到BX寄存器中,试写出相应的程序段。

DATASEGMENT

TABLEDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H

……

MOVAL,5

MOVBX,OFFSETTABLE

XLATTABLE

MOVCL,AL

MOVAL,7

MOVBL,AL

MOVBH,CL

8.已知当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行下列指

令过程中,堆栈中的内容和堆栈指针SP是怎样变化的。

PUSHAX

PUSHBX

POPBX

POPAX

(1)指

9.下列指令完成什么功能

(1)ADDAL,DH

(2)ADCBX,CX(3)SUBAX,2710H

(4)DECBX(5)NEGCX(6)INCBL

(7)MULBX(8)DIVCL

(1)AL+DH→AL

(2)BX+CX+CF→BX(3)AX-2710H→AX

(__________4)BX-1→BX(5)0-CX→CX(6)BL+1→BL

(7)AX*BX→DX,AX(8)AX/CL商→AL,余数→AH

10.已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果

是什么标志位CF等于什么

(1)ANDAH,CL

(2)ORBL,30H(3)NOTAX

(4)XORCX,0FFF0H(5)TESTDH,0FH(6)CMPCX,00H

(7)SHRDX,CL(8)SARAL,1(9)SHLBH,CL

(10)SALAX,1(11)RCLBX,1(12)RORDX,CL

(1)AX=0408H,CF=0

(2)BX=0F36H,CF=0

(3)AX=0DAF7H,CF不变(4)CX=0FFF4H,CF=0

(5)DX=01864H,CF=0(6)CX=0004H,CF=0

(7)DX=0186H,CF=0(8)AX=2504H,CF=0

(9)BX=0F036H,CF=0(10)AX=4A10H,CF=0

(11)BX=1E6C/1E6DH,CF=0(12)DX=4186H,CF=0

11.假设数据段定义如下:

STRINGDB‘ThePersonalComputer&

TV’

试用字符串操作等指令编程完成以下功能:

(1)把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。

(2)比较该字符串是否与’TheComputer’相同,若相同则将AL寄存器的内容置1,否则置

0。

并要求将比较次数送到BL寄存器中。

(3)检查该字符串是否有’&

’,若有则用空格字符将其替换。

(4)把字符串大写字母传送到附加段中以CAPS开始的单元中,其余字符传到以CHART

开始的单元中。

然后将数据段中存储上述字符串的单元清0。

(1)CLD

LEASI,STRING

LEADI,GET_CHAR

MOVCX,26

REPMOVSB

(2)补充在附加段定义

STRING1DB‘Thecomputer’

MOVAL,1

CLD

LEADI,STRING1

MOVCX,12

REPZCMPSB

JZSKIP

MOVAL,0

SKIP:

MOVBX,12

SUBBX,CX

(3)MOVAX,DATA

MOVES,AX

MOVAL,'

&

'

LEADI,STRING

NEXT:

REPNESCASB

JZFIND

JMPEXIT

FIND:

MOVBYTEPTR[DI-1],'

'

JCXZEXIT

JMPNEXT

EXIT:

(4)LEASI,STRING

LEADI,CAPS

LEABX,CHART

MOVAL,[SI]

CMPAL,’A’

JBOTHER

CMPAL,’Z’

JAOTHER

MOVES:

[DI],AL

INCDI

JMPSKIP

OTHER:

MOVES:

[BX],AL

INCBX

MOVBYTEPTR[SI],0

INCSI

LOOPNEXT

12.编程将AX寄存器中的内容以相反的顺序传送到DX寄存器中,并要求AX中的内容不

被破坏,然后统计DX寄存器中‘1’的个数是多少。

MOVBL,0

MOVDX,0

MOVCX,16

SHLAX,1

JNCSKIP

INCBL

RCRDX,1

STOP:

POPAX

13.设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,

(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N标号的地址为1200:

0278H,PROG_F标号的地址为3400H:

0ABCH。

说明下列每条指令执行完后,程序将分别

转移到何处执行

(1)JMPPROG_N

(2)JMPBX

(3)JMP[BX]

(4)JMPFARPROG_F

(5)JMPDWORDPTR[BX]

如将上述指令中的操作码JMP改成CALL,则每条指令执行完后,程序转向何处执行并

请画图说明堆栈中的内容和堆栈指针如何变化。

(1)1200H:

0278H

(2)1200H:

0300H

(3)1200H:

4800H

(4)3400H:

0ABCH

(5)00FFH:

将操作码JMP改成CALL后:

指令长度为3,则IP=0100H+3=0103H,入栈

指令长度为2,则IP=0100H+2=0102H,入栈

14.在下列程序段括号中分别填入以下指令

(1)LOOPNEXT

(2)LOOPENEXT(3)LOOPNENEXT

试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX的内容分别是什么。

START:

MOVAX,01H

MOVBX,02H

MOVDX,03H

MOVCX,04H

INCAX

ADDBX,AX

SHRDX,1

()

(1)AX=05HBX=10HCX=0DX=0

(2)AX=02HBX=04HCX=03HDX=01H

(3)AX=03HBX=07HCX=02HDX=0

15.某班有7个同学英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作:

(1)给每人加5分,结果存到NEW数组中

(2)把总分存到SUM单元中

ARRAYDB,,,,,,

NEWDB7DUP()

SUMDW0

MOVAX,DATA

MOVDS,AX

(1)LEASI,ARRAY

LEADI,NEW

MOVCX,7

MOVAL,[SI]

ADDAL,5

MOV[DI],AL

(2)LEASI,ARRAY

CLC

SP

5000H:

0000H

03FCH

03FEH

0400H

MOVCX,7

NEXT1:

MOVAL,[SI]

MOVAH,0

ADCSUM,AX

LOOPNEXT1

16.中断向量表的作用是什么它放在内存的什么区域内中断向量表中的什么地址用于

类型3的中断

中断向量表用来存放中断服务程序的入口地址。

8086的256类中断的入口地址要占用

1K字节,位于内存00000H~003FFH的区域内。

中断向量表中0000CH~0000FH用于类型

3的中断。

17.设类型2的中断服务程序的起始地址为0485:

0016H,它在中断向量表中如何存放

物理地址内容

00008H16H

00009H00H

0000AH85H

0000BH04H

18.若中断向量表中地址为0040H中存放240BH,0042H单元里存放的是D169H,试问:

(1)这些单元对应的中断类型是什么

(2)该中断服务程序的起始地址是什么

(1)10H

(2)D169H:

240BH

19.简要说明8086响应类型0~4中断的条件是什么

类型0:

除法错中断

执行除法指令时,若除数为0或所得商超过寄存器能容纳的范围,则自动产生类型0

中断。

类型1:

单步中断

若CPU的单步标志TF=1,则每执行完一条指令后,自动产生类型1中断。

类型2:

不可屏蔽中断NMI

当8086的NMI引脚上接收到由低变高的电平变化时,将自动产生类型2中断。

类型3:

断点中断

若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3中断。

类型4:

溢出中断

若溢出标志OF=1,则可由溢出中断指令INTO产生类型4中断。

第四章

1.下列变量各占多少字节

A1DW23H,5876H

A2DB3DUP(),0AH,0DH,‘$’

A3DD5DUP(1234H,567890H)

A4DB4DUP(3DUP(1,2,’ABC’))

A1占4个字节

A2占6个字节

A3占40个字节

A4占60个字节

2.下列指令完成什么功能

MOVAX,00FFHAND1122H+3344H

MOVAL,15GE1111B

MOVAX,00FFHLE255+6/5

ANDAL,50MOD4

ORAX,0F00FHAND1234OR00FFH

(1)将0066H传送给AX

(2)将0FFH传送给AL

(3)将0FFFFH传送给AX

(4)ANDAL,02H

(5)ORAX,00FFH

3.有符号定义语句如下:

BUFDB3,4,5,’123’

ABUFDB0

LEQUABUF-BUF

求L的值为多少

L=6

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

PARDW

PNAMEDB16DUP()

COUNTDD

PLENTHEQU$-PAR

求PLENTH的值为多少表示什么意义

PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22,$-PAR=22,故PLENTH

的值为22。

若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在

行的当前偏移地址。

故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。

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

DA1DB

DA2DW10DUP()

DA3DB‘ABCD’

MOVAX,TYPEDA1

MOVBX,SIZEDA2

MOVCX,LENGTHDA3

AX=1,BX=20,CX=1

6.下段程序完成后,AH等于什么

INAL,5FH

TESTAL,80H

JZL1

JMPSTOP

L1:

MOVAH,0FFH

HLT

讨论从端口5FH输入的数据最高位的情况。

若最高位为1,则AH=0;

若最高位为0,

则AH=0FFH。

7.编程序完成下列功能:

(1)利用中断调用产生5秒延时。

(2)利用中断调用,在屏幕上显示1~9之间随机数。

(1)可以利用中断类型1CH来处理,因为在系统时钟的中断处理程序中,时钟中断一

次要调用一次INT1CH,即每隔55ms,产生一次1CH中断,要产生5秒延时,只要中断

5s/55ms=91次即可。

又因1CH中断处理程序中只有一条IRET指令,故可将用户的程序代

替原有的INT1CH程序。

COUNTDW91;

计数器

MESSDB‘5sdelayed!

’,0AH,0DH,’$’

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

PUSHDS

MOVAX,0

MOVAX,DATA

MOVDS,AX

MOVAL,1CH;

得到原中断向量

MOVAH,35H

INT21H

PUSHES;

存储原中断向量

PUSHDS

MOVDX,OFFSETDELAY;

DELAY的偏移地址和段地址

MOVAX,SEGDELAY

MOVAL,1CH;

设置中断向量

MOVAH,25H

POPDS

INAL,21H;

设置中断屏蔽位

ANDAL,0FEH

OUT21H,AL

STI

MOVDI,2000H;

主程序延迟,在执行此段程序期间

A1:

MOVSI,3000H;

产生中断

A2:

DECSI

JNZA2

DECDI

JNZA1

POPDX;

取原中断向量

MOVAL,1CH

RET

MAINENDP

DELAYPROCNEAR

PUSHCX

PUSHDX

DECCOUNT;

5秒计数

JNZEXIT

MOVDX,OFFSETMESS;

显示信息

MOVAH,09H

MOVCOUNT,91;

5秒的值

CLI

POPDX

POPCX

IRET

DELAYENDP

CODEENDS

ENDSTART

(2)可以利用INT1AH,读取当前时间的1/100秒为随机数。

CODE

START:

MOVAH,0

INT1AH;

读取当前时间CH:

CL=时:

MOVAL,DL;

DH:

DL=秒:

1/100秒

MOVBL,9

DIVBL

INCAH

MOVDL,AH

ADDDL,30H

MOVAH,2

MOVAH,4CH

8.编两个通过过程完成将AX中存放的二进制数转换成压缩型BCD码以及将BCD码转换

成二进制数。

(1)将AX中的二进制数先后除以1000,100和10,每次除法所得的商,即是BCD数

的千位、百位和十位数,余数是个位数。

子程序名:

B2TOBCD

输入参数:

AX=十六位二进制数

输出参数:

CF=0,则AX=4位压缩型BCD码。

CF=1,则要转换的数大于9999,AX不

变。

使用寄存器:

CX:

存放除数,DX:

存放中间结果。

B2TOBCDPROCFAR

CMPAX,9999;

AX>

9999,则CF置1

JBETRAN

STC

TRAN:

PUSHCX

SUBDX,DX;

DX清0

MOVCX,1000;

计算千位数

DIVCX

XCHGAX,DX;

商在DX中,余数在AX中

MOVCL,4

SHLDX,CL;

DX左移4位

MOVCL,100;

计算百位数

DIVCL

ADDDL,AL;

百位数加到DL中,DX左移4位

SHLDX,CL

XCHGAL,AH;

余数保留在AL中

SUBAH,AH

MOVCL,10;

计算十位数

十位数加到DL中,DX左移4位

ADDDL,AH;

加个位数

MOVAX,DX;

结果送到AX中

RET

B2TOBCDENDP

(2)将AX中4位BCD码顺序乘以1000,100,10和1,然后求和即得。

BCDTOB2

AX=4位压缩BCD码

BX:

暂存数据,CX:

存放乘数,DX:

存放中间结果

BCDTOB2PROCFAR

MOVBX,AX

ROLAX,CL

ANDAX,000FH

乘以1000

MULCX

MOVDX,AX

MOVAX,BX

MOVCL,8

乘以100

MULCL

ADDDX,AX

SHRAX,CL

乘以10

ANDBX,000FH

ADDDX,BX

MOVAX,DX

BCDTOB2ENDP

9.编写两个通用过程,一个完成ASCII码转换成二进制数功能,另一个完成ASCII字符显

示输出功能。

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

当前位置:首页 > 高等教育 > 工学

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

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