微机原理与接口技术作业答案Word文档格式.docx
《微机原理与接口技术作业答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术作业答案Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
3-732位微机工作在实地址模式下,已知(DS)=1000和(SS)=2000H,(SI)=007FH,(BX)=0040H,(BP)=0016H,变量TABLE的偏移地址为0100H.指出下列指令中源操作数的寻址方式,求它的有效地址(EA)和物理地址(PA).
(1)MOVAX,[1234H]
(2)MOVAX,TABLE
(3)MOVAX,[BX+100H]
(4)MOVAX,TABLE[BP][SI]
(1)直接寻址
EA=1234HPA=(DS)*16+EA=11234H
(2)直接寻址
EA=(TABLE)=0100HPA=(DS)*16+EA=10100H
(3)基址寻址
EA=(BX)+100H=0140HPA=(DS)*16+EA=10140H
(4)带位移的基址加间址寻址
EA=(BP)+(SI)+TABLE=0195HPA=(SS)*16+EA=20195H
当基址寄存器和间址寄存器默认的段寄存器不同时,一般规定,由基址寄存器来决定默认的段寄存器为段基址寄存器.这里BP为基址寄存器,所以默认SS为段基址寄存器.
3-8指出下列指令的错误,并加以改正.
(1)MOVDS,100
(2)MOV1020H,DX
(3)SUB[1000H],[SI]
(4)PUSHAL
(5)INAL,[80H]
(6)MOVDS,ES
(7)JMPBX
(8)SHRDX,4
(9)OUT380H,AX
(10)ADDAL,BX
(11)POPCS
(12)MOVCL,3300H
(1)立即数不能直接传送到段寄存器中去
应改为:
MOVAX,100
MOVDS,AX
(2)立即数只能出现在源操作数位置
MOVDX,1020H
(3)源操作数和目标操作数不能同时为寄存器寻址
MOVAX,[1000H]
SUBAX,[SI]
(4)PUSH指令不能操作8位数据
PUSHAX
(5)[80H]不是端口INAL,80H
INAL,80H
(6)两个段寄存器之间不能直接传送
MOVAX,ES
MOVDS,AX
(7)对
(8)移位次数超过1的时候,要把移位次数放入CL中
MOVCL,4
SHRDX,CL
(9)端口地址大于255时,要把地址放入DX中
MOVDX,380H
OUTDX,AX
(10)源操作数和目标操作数不匹配
ADDAX,BX
(11)POP指令只能使用在存储器或通用寄存器
可改为:
POPAX
(12)源操作数和目标操作数不匹配
MOVCX,3300H
3-9已知:
(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,[09226H]=00F6H,[09228H]=1E40H,[1E4F6H]=091DH.试求下列各指令单独执行后的结果.
(1)MOVCL,20H[BX][SI];
(CL)=?
(2)MOV[BP][DI],CX;
[IE4F6H]=?
(3)LEABX,20H[BX][SI]:
(BX)=?
MOVAX,2[BX]:
(AX)=?
(4)LDSSI,[BX][DI]
MOV[SI],BX;
(SI])=?
(5)XCHGCX,32H[BX];
XCHG20[BX][SI],AX;
[09226H]=?
(1)(CL)=00F6H
(2)[IE4F6H]=5678H
(3)(BX)=0056H
(AX)=1E40H
(4)(SI)=0024H
(5)(AX)=5678H
[09226H]=1234H
3-10已知(AL)=0C4H,DATA单元中内容为5AH,写出下列每条指令单独执行后的结果(ODITSZAPC:
0---xxux0)
(1)ANDAL,DATA
(2)ORAL,DATA
(3)XORAL,DATA
(4)NOTDATA
(5)ANDAL,0FH
(6)ORAL,1H
(7)XORAL,0FFH
(8)TESTAL,80H
(1)(AL)=40HCF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义
(2)(AL)=DEHCF=0,OF=0,SF=1,ZF=0,PF=1,AF无定义
(3)(AL)=9EHCF=0,OF=0,SF=1,ZF=0,PF=0,AF无定义
(4)(AL)=A5H不影响任何标志位
(5)(AL)=04HCF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义
(6)(AL)=C5HCF=0,OF=0,SF=1,ZF=0,PF=1,AF无定义
(7)(AL)=3BHCF=0,OF=0,SF=0,ZF=0,PF=0,AF无定义
(8)(AL)不变=0C4HCF=0,OF=0,SF=1,ZF=0,PF=0,AF无定义
3-12(AL)=8EH,(BL)=72H,执行以下指令后,标志位OF、SF、ZF、AF、PF和CF的值是什么?
(1)ADDAL,BL
(2)ANDBL,AL
(3)CMPAL,BL
(4)SHLAL,1
解:
(1)OF=0,SF=0,ZF=1,AF=1,PF=1,CF=1
(2)OF=0,SF=0,ZF=0,AF=(未定义),PF=0,CF=0
(3)OF=1,SF=0,ZF=0,AF=0,PF=0,CF=0
(4)OF=1,SF=0,ZF=0,AF=(未定义),PF=0,CF=1
3-15试用CMP指令和无条件指令实现以下判断
(1)AX和CX中的内容均为无符号数
①(AX)>
(CX)则转至BIGGER标号执行
②(AX)<
(CX)则转至LESS标号执行
(2)BX和DX中的内容均为有符号数
①(BX)>
(DX)则转至BIGGER标号执行
②(BX)<
(DX)则转至LESS标号执行
(1)CMPAX,CX
JABIGGER
JBLESS
(2)CMPBX,DX
JGBIGGER
JLLESS
第四章汇编语言程序设计
4-9试用伪指令编写一数据段与下面程序等效。
MOVAX,0913H
MOVDS,AX
MOVBX,20H
MOV[BX],‘AB’
DATASEGMENTAT0931H
ORG20H
DATA1DW?
(或DATA1DW'
AB'
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDATA1,'
CODEENDS
4-10下面各题有语法错误,分别用两种办法修改,使其正确。
(1)M1DW5060H…MOVBL,M1
改:
M1DB60H,50H
…
MOVBL,M1
M1DW5060H
MOVBL,BYTEPTRM1
MOVBX,M1
M2LABELBYTE
M1DW5060H
…
MOVBL,M2
(2)M2EQU10H…MOVM2,AL
DATASEGMENT
ORG10H
M2DB?
ASSUMECS:
MOVAX,DATA
MOVDS,AX
MOVM2,AL
ENDSTART
MOVSI,10H
MOV[SI],AL
MOVDS:
[0010H],AL
(3)M3DW‘ABCD’
M3DW'
'
CD'
M3DB'
ABCD'
(4)M4DB1234
M4DB'
1234'
M4DW1234
(5)DATA1SEGMENT
DA1DW1234H
DATA1ENDS
DATA2SEGMENT
DA2DW5678H
DATA2ENDS
CODESEGMENT
CODE,DS:
DATA1
…
MOVBX,DA2
CODEENDS
ASSUMECS:
DATA2
CODE,DS:
ASSUMEDS:
NOTHING
ASSUMECD:
DATA1,ES:
MOVAX,DATA2
MOVES,AX
MOVBX,DA2
4-12按照下面要求写出程序的框架
(1)数据段的位置从8000H开始,数据段中定义一个有100个字节的数组。
(2)堆栈段名为STACK1,留100个字的空间。
(3)代码段指定段寄存器,主程序从1000H开始,给有关段寄存器赋值。
DATASEGMENTAT800H
M1DB100DUP(?
)
STACK1SEGMENTSTACK
DW100DUP(?
STACK1ENDS
CODESEGMENTAT100H
DATA,SS:
STACK1
4-15将MBUF为起始单元的5个数按相反次序传到NBUF单元开始的存储单元之中.
DATASEGMENT
MBUFDW1,2,3,4,5
NBUFDW5DUP(?
MEQU10H
STACK1SEGMENTPARASTACK
DB100DUP(0)
DATA,SS:
STACK1
MOVAX,DATA
MOVSI,OFFSETMBUF
MOVDI,OFFSETNBUF
MOVCX,5
ADDSI,8
LOP:
MOVAX,[SI]
MOV[DI],AX
DECSI
INCDI
INCDI
DECCX
JNZLOP
MOVAH,4CH
INT21H
4-16试编写程序,完成下列数字表达式的功能
XXDBX
YDB?
MOVAL,XX
CMPAL,-1
JGBIGR
MOVAL,-1
JMPJUST2
BIGR:
CMPAL,1
JGEJUST1
MOVAL,0
JMPJUST2
JUST1:
MOVAL,1
JUST2:
MOVY,AL
4-17将内存中某数据块中的正数和负数分开,并分别将这些正数和负数送同一数据段的两个缓冲区中,并在屏幕上显示正数和负数的个数.
D1DB-1,-2,1,2,3,-4,4,5,-5,0,0,9,-3
COUNTEQU$-D1
D2DB100DUP(?
D3DB100DUP(?
PNUMDW1DUP(?
NNUMDW1DUP(?
CONSTDW10000,1000,100,10,1
DECSDB5DUP(0)
HEAD1DB'
THENUMBEROFPOSITIVENUMBERIS:
$'
HEAD2DB'
THENUMBEROFNEGATIVENUMBERIS:
MOVBX,OFFSETD1
MOVSI,OFFSETD2
MOVDI,OFFSETD3
MOVCX,COUNT
MOVAL,[BX]
CMPAL,0
MOV[DI],AL
INCNNUM
JEJUST2
INCSI
INCPNUM
INCBX
MOVAH,9H
MOVDX,OFFSETHEAD1
MOVAX,PNUM
MOVDL,0AH
MOVAH,02H
MOVDL,0DH
MOVAH,9H
MOVDX,OFFSETHEAD2
MOVAX,NNUM
CALLDISPLAY
DISPLAYPROCNEAR
MOVCX,5
LEASI,CONST
LEADI,DECS
CONV3:
MOVBL,0
LOP1:
SUBAX,[SI]
JCNEXT
INCBL
JMPLOP1
NEXT:
ADDAX,[SI]
ORBL,30H
MOV[DI],BL
LOOPCONV3
CONV4:
MOVDL,[DI]
CMPDL,30H
JZNODIS
JMPDISP
NODIS:
LOOPCONV4
DISP:
CMPCX,0
JZQUIT
LOOPDISP
QUIT:
RET
DISPLAYENDP
ENDSTART
4-19内存BLOCK开始,存放着256个字节的带符号数.编写程序,从这些数中找出绝对值最大的数,将其放入MAX中.
BLOCKDB-1,-3,2,5,-4,-7,-8,9,10,-124
COUNTEQU$-BLOCK
MAXDB?
MAX1DB?
MOVSI,OFFSETBLOCK
MOVBL,[SI]
CMPBL,0
JLABS1
JMPCON1
ABS1:
NEGBL
CON1:
MOVAL,[SI]
JLABS2
JMPCON2
ABS2:
NEGAL
CON2:
CMPBL,AL
JAEJUST1
XCHGBL,AL
MOVDI,SI
MOVBH,[DI]
MOVMAX,BH
MOVMAX1,BL
第五章存储器
5-7若用1024*1b的RAM芯片组成16K*8b的存储器,,需要多少芯片?
在地址线中有多少位参与片内寻址?
多少位用做芯片组选择信号?
先进行位扩展,一组芯片需要8片
再进行字扩展,需要16组芯片.
所以共需要16*8=128片
1024=1K,需要10位参与片内寻址
16=24,需要4位做选择信号.
5-8试用4K*8b的EPROM2732和8K*8b的SRAM6264,以及74LS138译码器,构成一个8KB的ROM,32KB的RAM存储系统,要求设计存储器扩展电路,并指出每片存储芯片的地址范围.
5-9用EPROM2764(8K*8b)和SRAM6264(8k*8b)各一片组成存储器,其地址范围为FC000~FFFFFH,试画出存储器与CPU的连接图和片选信号译码电路(CPU地址线20位,数据线8位)。
11111100000000000000
11111101111111111111
11111110000000000000
11111111111111111111
5-10现有存储芯片:
2K*1b的ROM和4K*1bdeRAM,若用它们组成容量为16KB的存储器,前4KB为ROM,后12KB为RAM,问各种存储芯片分别用多少片?
4KB=4K*8b需要2*8=16片
12KB=12K*8b需要3*8=24片
第六章中断技术
6-18某系统使用一片8259A管理中断,中断请求由IR2引入,采用电平触发、完全嵌套、普通EOI结束方式,中断类型号为42H,端口地址为80H和81H,试画出8259A与CPU的硬件连接图,并编写初始化程序。
电路图参见教材P178图6-19,
由A19-A1=0000000000001000000和M/
给出低电平。
MOVAL,1BH(B)
OUT80H,AL;
设置ICW1
MOVAL,40H(B)
OUT81H,AL:
设置ICW2
MOVAL,01H(B)
设置ICW4
MOVAL,FBH(B)
OUT81H,AL;
设置OCW1
6-19某系统使用两片8259A管理中断,从片的INT连接到主片的IR2请求输入端。
设主片工作于边沿触发、特殊完全嵌套、非自动结束和非缓冲方式,中断类型号为70H,端口地址为80H和81H;
从片工作与边沿触发、完全嵌套、非自动结束和非缓冲方式,中断类型号为40H,端口地址为20H和21H。
要求:
(1)画出主、从片级联图
(2)编写主、从片初始化程序
电路图参见教材P179图6-21,主片
给出低电平,从片
由A19-A1=0000000000000010000和M/
主片8259A
MOVAL,11H(B)
OUT80H,AL;
定义ICW1
MOVAL,70H(B)
定义ICW2
MOVAL,04H(B)
定义ICW3
MOVAL,11H(B)
定义ICW4
定义OCW1
(开放从片IR2的请求)
INAL,81H
ANDAL,