精选资料微机原理第二次作业1.docx
《精选资料微机原理第二次作业1.docx》由会员分享,可在线阅读,更多相关《精选资料微机原理第二次作业1.docx(11页珍藏版)》请在冰点文库上搜索。
精选资料微机原理第二次作业1
1.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。
(1)MOVAX,2408H
(2)MOVCL,0FFH(3)MOVBX,[SI]
(4)MOV5[BX],BL(5)MOV[BP+100H],AX(6)MOV[BX+DI],’$’
(7)MOVDX,ES:
[BX+SI](8)MOVVAL[BP+DI],DX
(9)INAL,05H(10)MOVDS,AX
(1)立即数寻址;寄存器寻址
(2)立即数寻址;寄存器寻址
(3)寄存器间寻址;寄存器寻址
(4)寄存器寻址;寄存器相对寻址
(5)寄存器寻址;寄存器相对寻址
(6)立即数寻址;基址变址寻址
(7)基址变址寻址;寄存器寻址
(8)寄存器寻址;相对基址变址寻址
(9)直接寻址;寄存器寻址
(10)寄存器寻址;寄存器寻址
2已知:
DS=1000H,BX=0200H,SI=02H,内存10200H~10205H单元的内容分别为10H,2AH,3CH,46H,59H,6BH。
下列每条指令执行完后AX寄存器的内容各是什么?
(1)MOVAX,0200H
(2)MOVAX,[200H](3)MOVAX,BX
(4)MOVAX,3[BX](5)MOVAX,[BX+SI](6)MOVAX,2[BX+SI]
(1)AX=0200H
(2)AX=2A10H(3)AX=0200H
(4)AX=5946H(5)AX=463CH(6)AX=6B59H
3.设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,
数据段中变量名为VAL的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什
么?
物理地址值是多少?
1)MOVAX,[100H]
(2)MOVAX,VAL(3)MOVAX,[BX]
(4)MOVAX,ES:
[BX](5)MOVAX,[SI](6)MOVAX,[BX+10H]
(7)MOVAX,[BP](8)MOVAX,VAL[BP][SI]
(9)MOVAX,VAL[BX][DI](10)MOVAX,[BP][DI]
(1)直接,10100H
(2)直接,10030H(3)寄存器间接,10100H
(4)寄存器间接,20100H(5)寄存器间接,100A0H(6)寄存器相对,10110H
(7)寄存器间接,35200H(8)相对基址变址,352D0H
(9)相对基址变址,10154H(10)基址变址,35224H
4若AL=0FFH,BL=13H,指出下列指令执行后标志AF、OF、ZF、SF、PF、CF的状态。
(1)ADD BL,AL
(2)SUB BL,AL
(3)INC BL (4)NEG BL
(5)AND AL,BL (6)MUL BL
(1)AF=1,OF=1,ZF=0,SF=0,PF=1,CF=1
(2)AF=0,OF=0,ZF=0,SF=0,PF=1,CF=0
(3)AF=0,OF=0,ZF=0,SF=0,PF=1,CF=0
(4)AF=0,OF=0,ZF=0,SF=1,PF=1,CF=0
(5)AF=0,OF=0,ZF=0,SF=0,PF=0,CF=0
(6)AF=0,OF=0,ZF=0,SF=0,PF=0,CF=0
5 指出下列指令中哪些是错误的,错在什么地方。
(1)MOVDL,AX
(2)MOV8650H,AX(3)MOVDS,0200H
(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV[BX+SI+3],IP
(1)错误,源和目的操作数类型不匹配,DL是8位寄存器,AX是16位寄存器。
(2)错误,立即数不能作为目的操作数。
(3)错误,不能用立即数直接给段寄存器赋值。
(4)错误,不能在两个存储单元之间直接传送数据
(5)错误,IP不能作目的操作数。
(6)错误,IP不能作源操作数。
6在下列程序段括号中分别填入以下指令
(1)LOOPNEXT
(2)LOOPENEXT(3)LOOPNENEXT
试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX的内容分别是什么。
START:
MOVAX,01H
MOVBX,02H
MOVDX,03H
MOVCX,04H
NEXT:
INCAX
ADDBX,AX
SHRDX,1
()
LOOP过程:
AXBXCXDX
初始值01H02H04H03H
循环1次02H04H03H01H
循环2次03H07H02H00H
循环3次04H0BH01H00H
循环4次05H10H00H00H
结果:
AXBXCXDX
(1)05H10H00H00H
(2)02H04H03H01H执行一次,ZF=0,退出循环。
(3)03H07H02H00H执行两次,ZF=1,退出循环
7执行如下程序片断,说明每条指令的执行结果
moveax,80h ;EAX=__________
addeax,3 ;EAX=__________,CF=__________,SF=__________
addeax,80h ;EAX=__________,CF=__________,OF=__________
adceax,3 ;EAX=__________,CF=__________,ZF=__________
80H;
83H,0,0;
103H,0,0;
106H,0,0;
8 给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
moval,89h
addal,al
addal,9dh
cmpal,0bch
subal,al
decal
incal
AL=89H;
AL=12H,CF=1,ZF=0,SF=0,OF=1,PF=1;
AL=AFH,CF=0,ZF=0,SF=1,OF=0,PF=1;
AL=AFH,CF=1,ZF=0,SF=1,OF=0,PF=1;
AL=00H,CF=0,ZF=1,SF=0,OF=0,PF=1;
AL=FFH,CF=0,ZF=0,SF=1,OF=0,PF=1;
AL=00H,CF=0,ZF=1,SF=0,OF=0,PF=1;
9 下列指令完成什么功能?
MOVAX,00FFHAND1122H+3344H
MOVAL,15GE1111B
MOVAX,00FFHLE255+6/5
ANDAL,50MOD4
ORAX,0F00FHAND1234OR00FFH
MOVAX,0066H
MOVAL,0FFH
MOVAX,0FFH
ANDAL,2
ORAX,00FFH
10 编制3个子程序把一个32位二进制数用8位十六进制形式在屏幕上显示出来,分别运用如下3种参数传递方法,并配合3个主程序验证它。
(1)采用EAX寄存器传递这个32位二进制数
(2)采用temp变量传递这个32位二进制数
(3)采用堆栈方法传递这个32位二进制数
(1)
WVARWORD307281AFH
MOVEAX,WVAR
CALLDISP
MOVAL,’H’
CALLDISPC
DISPPROC
PUSHEBX
PUSHECX
MOVECX,8
DHW1:
ROLEAX,4
MOVEBX,EAX
ANDAL,OFH
ADDAL,30H
CMPAL,’9’
JBEDHW2
ADDAL,7
DHW2:
CALLDISPC
MOVEAX,EBX
LOOPDHW1
POPECX
POPEBX
RET
DISPENDP
(2)
WVARWORD307281AFH
TEMPWORD?
MOVEAX,WVAR
MOVTEMP,EAX
CALLDISP
MOVAL,’H’
CALLDISPC
DISPPROC
PUSHEBX
PUSHECX
MOVECX,8
MOVEAX,TEMP
DHW1:
ROLEAX,4
MOVEBX,EAX
ANDAL,OFH
ADDAL,30H
CMPAL,’9’
JBEDHW2
ADDAL,7
DHW2:
CALLDISPC
MOVEAX,EBX
LOOPDHW1
POPECX
POPEBX
RET
DISPENDP
(3)
WVARWORD307281AFH
PUSHWVAR
CALLDISP
ADDESP,4
MOVAL,’H’
CALLDISPC
DISPPROC
PUSHEBP
MOVEBP,ESP
PUSHEBX
PUSHECX
MOVECX,8
MOVEAX,[EBP+8]
DHW1:
ROLEAX,4
MOVEBX,EAX
ANDAL,OFH
ADDAL,30H
CMPAL,’9’
JBEDHW2
ADDAL,7
DHW2:
CALLDISPC
MOVEAX,EBX
LOOPDHW1
POPECX
POPEBX
POPEBP
RET
DISPENDP
11按如下说明编写程序
子程序功能:
把用ASCII码表示的两位十进制数转换为压缩BCD码
入口参数:
DH=十位数的ASCII码,DL=个位数的ASCII码
出口参数:
AL=对应BCD码
ASCTOBPROC
SHLDH,4
MOVAL,DH
ANDDL,OFH
ORAL,DL
RET
ACSTOBENDP
12 编写程序,建立一数据表,表中连续存放1-9的平方,查表求某数字的平方。
DATASEGMENT
INPUTDB“PLEASEINPUTX(1…9):
$”
TABDW1,4,9,16,25,36,49,64,81
XDB?
XXDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATE
START:
MOVAX,DX
MOVDS,AX
MOVAH,9
LEADX,INPUT
INT21H
MOVAH,1
INT21H
ANDAL,OFH
MOVX,AL
ADDAL,AL
MOVBL,AL
MOVBH,0
MOVAX,TAB[BX]
MOVXX,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
1、若某微机有16条地址线,现用SRAM2114(1K×4位)存储芯片组成存储系统,问采用线选译码时,系统的存储容量最大为多少?
需要多少个2114存储器芯片?
答:
6K×8,需要12片2114存储器芯片。
2、设有一个具有11位地址线和4位数据线的存储芯片,问:
(1)该存储芯片能存储多少字节的信息?
(2)如果要构成容量为32k*8的存储器,需要多少块芯片?
(1)(2^11)×4B
(2)(32K×8)/(2K×4)=32块
3、现有一存储体芯片容量为512×4位,若要用它组成4KB的存储器,需要多少这样的芯
片?
每块芯片需要多少寻址线?
整个存储系统最少需要多少寻址线?
解:
(1)(4×1024×8)/(512×4)=16根
(2)因为512=2^9所以每块芯片需要寻址线数目为:
9根(3)4K=2^12所以最少要12根