当前位置:文档之家› 微机原理第二次作业(1)

微机原理第二次作业(1)

1. 分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。

(1)MOV AX,2408H (2)MOV CL,0FFH (3)MOV BX,[SI](4)MOV 5[BX],BL (5)MOV [BP+100H],AX (6)MOV [BX+DI],’$’(7)MOV DX,ES:[BX+SI] (8)MOV VAL[BP+DI],DX(9)IN AL,05H (10)MOV DS,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)MOV AX,0200H (2)MOV AX,[200H] (3)MOV AX,BX(4)MOV AX,3[BX] (5)MOV AX,[BX+SI] (6)MOV AX,2[BX+SI](1)AX=0200H (2)AX=2A10H (3)AX=0200H(4)AX=5946H (5)AX=463CH (6)AX=6B59H3. 设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为VAL 的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什么?物理地址值是多少?1)MOV AX,[100H] (2)MOV AX,VAL (3)MOV AX,[BX](4)MOV AX,ES:[BX] (5)MOV AX,[SI] (6)MOV AX,[BX+10H](7)MOV AX,[BP] (8)MOV AX,VAL[BP][SI](9)MOV AX,VAL[BX][DI] (10)MOV AX,[BP][DI](1)直接,10100H (2)直接,10030H (3)寄存器间接,10100H(4)寄存器间接,20100H (5)寄存器间接,100A0H (6)寄存器相对,10110H(7)寄存器间接,35200H (8)相对基址变址,352D0H(9)相对基址变址,10154H (10)基址变址,35224H4 若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= 05 指出下列指令中哪些是错误的,错在什么地方。

(1)MOV DL,AX (2)MOV 8650H,AX (3)MOV DS,0200H(4)MOV [BX],[1200H] (5)MOV IP,0FFH (6)MOV [BX+SI+3],IP(1)错误,源和目的操作数类型不匹配,DL是8位寄存器, AX是16位寄存器。

(2)错误,立即数不能作为目的操作数。

(3)错误,不能用立即数直接给段寄存器赋值。

(4)错误,不能在两个存储单元之间直接传送数据(5)错误,IP不能作目的操作数。

(6)错误,IP不能作源操作数。

6 在下列程序段括号中分别填入以下指令(1)LOOP NEXT (2)LOOPE NEXT (3)LOOPNE NEXT试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX 的内容分别是什么。

START: MOV AX,01HMOV BX,02HMOV DX,03HMOV CX,04HNEXT: INC AXADD BX,AXSHR DX,1( )LOOP过程:AX BX CX DX初始值01H 02H 04H 03 H循环1次02H 04H 03H 01H循环2次03H 07H 02H 00H循环3次04H 0BH 01H 00H循环4次05H 10H 00H 00H结果:AX BX CX DX(1) 05H 10H 00H 00H(2) 02H 04H 03H 01H 执行一次,ZF=0,退出循环。

(3) 03H 07H 02H 00H 执行两次,ZF=1,退出循环7执行如下程序片断,说明每条指令的执行结果mov eax,80h ; EAX=__________add eax,3 ; EAX=__________,CF=__________,SF=__________ add eax,80h ; EAX=__________,CF=__________,OF=__________ adc eax,3 ; EAX=__________,CF=__________,ZF=__________ 80H ;83H ,0 ,0 ;103H ,0 ,0 ;106H ,0 ,0 ;8 给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:mov al,89hadd al,aladd al,9dhcmp al,0bchsub al,aldec alinc alAL=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 下列指令完成什么功能?MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFHMOV AX,0066HMOV AL,0FFHMOV AX,0FFHAND AL,2OR AX,00FFH10 编制3个子程序把一个32位二进制数用8位十六进制形式在屏幕上显示出来,分别运用如下3种参数传递方法,并配合3个主程序验证它。

(1)采用EAX寄存器传递这个32位二进制数(2)采用temp变量传递这个32位二进制数(3)采用堆栈方法传递这个32位二进制数(1)WVAR WORD 307281AFHMOV EAX,WVARCALL DISPMOV AL,’H’CALL DISPCDISP PROCPUSH EBXPUSH ECXMOV ECX,8DHW1: ROL EAX,4MOV EBX,EAXAND AL,OFHADD AL,30HCMP AL,’9’JBE DHW2ADD AL,7DHW2: CALL DISPCMOV EAX,EBXLOOP DHW1POP ECXPOP EBXRETDISP ENDP(2)WVAR WORD 307281AFH TEMP WORD?MOV EAX,WVARMOV TEMP,EAXCALL DISPMOV AL,’H’CALL DISPC DISP PROCPUSH EBXPUSH ECXMOV ECX,8MOV EAX,TEMP DHW1: ROL EAX,4MOV EBX,EAXAND AL,OFHADD AL,30HCMP AL,’9’JBE DHW2ADD AL,7 DHW2: CALL DISPCMOV EAX,EBXLOOP DHW1POP EBXRETDISP ENDP(3)WVAR WORD 307281AFHPUSH WVARCALL DISPADD ESP,4MOV AL,’H’CALL DISPCDISP PROCPUSH EBPMOV EBP,ESPPUSH EBXPUSH ECXMOV ECX,8MOV EAX,[EBP+8] DHW1: ROL EAX,4MOV EBX,EAXAND AL,OFHADD AL,30HCMP AL,’9’ADD AL,7DHW2: CALL DISPCMOV EAX,EBXLOOP DHW1POP ECXPOP EBXPOP EBPRETDISP ENDP11 按如下说明编写程序子程序功能:把用ASCII码表示的两位十进制数转换为压缩BCD码入口参数:DH=十位数的ASCII码,DL=个位数的ASCII码出口参数:AL=对应BCD码ASCTOB PROCSHL DH,4MOV AL ,DHAND DL,OFHOR AL,DLRETACSTOB ENDP12 编写程序,建立一数据表,表中连续存放1-9的平方,查表求某数字的平方。

DA TA SEGMENTINPUT DB “PLEASE INPUT X(1…9):$”TAB DW 1,4,9,16,25,36,49,64,81X DB ?XX DW ?DA TA ENDSCODE SEGMENTASSUME CS:CODE , DS:DATESTART:MOV AX,DXMOV DS ,AXMOV AH,9LEA DX ,INPUTINT 21HMOV AH,1INT 21HAND AL,OFHMOV X,ALADD AL,ALMOV BL,ALMOV BH,0MOV AX,TAB[BX]MOV XX,AXMOV AH,4CHINT 21HCODE ENDSEND START1、若某微机有16条地址线,现用SRAM 2114(1 K×4位)存储芯片组成存储系统,问采用线选译码时,系统的存储容量最大为多少?需要多少个2114存储器芯片?答:6K×8,需要12片2114存储器芯片。

2、设有一个具有11位地址线和4位数据线的存储芯片,问:(1) 该存储芯片能存储多少字节的信息?(2) 如果要构成容量为32k*8的存储器,需要多少块芯片?(1) (2^11)×4 B(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根。

相关主题