当前位置:文档之家› 微机原理经典习题

微机原理经典习题

1、当WR=1,RD=0,M/IO=1时,表示CPU当前正在进行读存储器操作。

2、已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,DS段有一操作数,其偏移地址=0204H,1)画出各段在内存中的分布2)指出各段首地CS:10550H DS:250A0HES:2EF00H SS:8FF00H3)该操作数的物理地址=?解:各段分布及段首址见右图所示。

操作数的物理地址为:250AH×10H+0204H = 252A4H3、若已知(SS)=1000H、(SP)=2000H;则堆栈段的段首地址=?1000H 栈顶地址=?12000H若现在把1234H送入堆栈,则它所在的存储单元地址=? 1988H 若该段最后一个单元地址为2FFFH,则栈底地址=?12FFFH4、MOV AX,[3102H]AL=(3102H) , AH=(3103H)如果(DS)=2000H, (23012H) = CDH, (23013H) = ABH;指令执行后,AX=? ABCDH5、MOV AX,[SI]若 (DS)=6000H, (SI)=1200H, (61200H)=44H, (61201H)=33H则指令执行后,(AX)=3344H。

7、保留AL中低4位,高4位清0。

AND AL, 0FHAL中有字符’a’~’z’, 将其转换成大写。

A N D A L,01011111B8、把A H和A L中的非压缩B C D码组合成压缩的B C D码,放到A L中。

M O V C L,4S H L A H,C LO R A L,A H9、把A X寄存器清零。

①M O V A X,0②X O R A X,A X③A N D A X,0④S U B A X,A X10、把A L中的数x乘10S A L A L,1;2xM O V A H,A LS A L A L,1;4xS A L A L,1;8xA D D A L,A H;8x+2x=10x11、(BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈MOV CH, 4 ; 循环次数MOV CL, 4 ; 移位次数NEXT:ROL BX, CLMOV AX, BXAND AX, 0FHPUSH AXDEC CHJNZ NEXT12、用串传送指令实现200个字节的数据传送:L E A S I,M E M1L E A D I,M E M2M O V C X,200C L DR E P M O V S B13、把从A000H开始的2K B内存单元清零。

程序段如下:M O V D I,0A000HM O V A X,0M O V C X,1024C L DR E P S T O S W14、从一个字符串中查找一个指定的字符mess db ‘COMPUTER’lea di, messmov al, ‘T’mov cx, 8cldrepne scasb15、比较两个字符串,找出不相匹配的地方lea si, mess1lea di, mess2mov cx, 8cldrepe cmpsb16、α、β是双精度数,分别存于 DX,AX 及 BX,CX 中,α > β时转 L1 ,否则转 L2CMP DX, BXJG L1JL L2CMP AX, CXJA L1L2:……L1:……18、给1A000H开始的256个内存单元均减去1,若发现某个单元减为0则立即退出循环,其后的单元不再减1。

程序段如下:(逻辑地址为1A00:0H)M O V A X,1A00HM O V D S,A X;1A00H段M O V D I,-1M O V C X,256G O O N:I N C D ID E C B Y T E P T R[D I]L O O P N Z G O O NH L T21.说明下面两个定义的不同之处:DB ‘AB’ ;41H在低字节,42H在高字节DW ‘AB’22.T A B L E D B10D U P(?)B U F F E R D W T A B L E,$+3设T A B L E的偏移地址为0080H,则汇编后$+3的内容为008f h23. 求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。

MOV AX,[300H]MOV BX,[302]SUB AX,BXJA AANEG AXAA:MOV [200H],AXINT 20H24.BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中。

这是一个循环次数已知的程序设计,用计数循环完成。

DATA SEGMENTBUF DB 12H, 34H, -56H, -98H, 096H, 68H, 56H, 80HN=$-BUFBUF1 DB N DUP(0)BUF2 DB N DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV DX,DATAMOV DS,AXLEA SI,BUFLEA DI,BUF1LEA BX,BUF2 MOV CX,NAA:MOV AL,[SI]INC SICMP AL,0JGE BBMOV [BX],ALINC BXJMP CCBB:MOV [DI],ALINC DICC:DEC CXJNZ AAMOV AH,4CHINT 21HCODE ENDSEND START25.OUT指令将使总线的IOW#信号有效, IN指令将使总线的IOR#信号有效27.中断步骤:中断请求、中断判优、中断响应、中断服务、中断返回28.中断类型号为23(17H),中断服务程序的入口地址5CH、2340H:7890H,存放在内存的哪些内容单元?请用8086•汇编语言直接编程,将中断服务程序的入口地址填入中断向量表中。

PUSH ESMOV AX,0000HMOV ES,AXMOV ES:WORD PTR [5CH],12ACHMOV ES:WORD PTR [5EH],2010HPOP ES29.29. 中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。

CLIMOV AX,0MOV DS,AXMOV SI,48H*4MOV AX,OFFSET int48hMOV [SI],AXMOV AX,SEG int48hMOV [SI+2],AXSTI30.若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,31.主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H32. 按以下要求初始化8259A,设端口地址为2000H和2001H:–接口地址为20H和21H;–中断为上升沿触发;单片8259A;不写ICW4;–与IR0-IR3对应的中断向量码为08H-0BH;–IR4-IR7不使用INIT8259A:MOV DX,2000H ;A0=0,写ICW1MOV AL,12H ;上升沿触发,单片,不写ICW4OUT DX,ALMOV DX,2001H ;A0=1,写ICW2,OCW1MOV AL,08H ;ICW2OUT DX,ALMOV AL,0F0H ;OCW1:屏蔽IR4-IR7OUT DX,AL33.8255A口地址40H,A口工作在方式0输出,B口工作在方式1输入,C 口的PC5输出为1。

方式字:10000110B复位置位字:00001011B初始化程序:MOV AL,10000110BOUT 43H,ALMOV AL,00001011BOUT 43H,AL36.8253地址为40H~43H,计数器1、方式1、计数初值1020H。

MOV AL,72H ;方式字OUT 43H,ALMOV AL,20H ;计数低位OUT 41H,ALMOV AL,10H ;计数高位OUT 41H,AL37.采用8253作定时/计数器,其接口地址为0120H~0123H。

输入8253的时钟频率为2M H z。

计数器0:每10m s输出1个C L K脉冲宽的负脉冲计数器1:产生10K H z 的连续方波信号计数器2:启动计数5m s后O U T输出高电平。

并编写初始化程序。

⏹确定计数初值:C N T0:10m s/0.5u s=20000C N T1:2M H z/10K H z=200C N T2:5m s/0.5u s=10000⏹确定控制字:C N T0:方式2,16位计数值00110100C N T1:方式3,低8位计数值01010110C N T2:方式0,16位计数值10110000C N T0:M O V D X,0123HM O V A L,34HO U T D X,A LM O V D X,0120HM O V A X,20000O U T D X,A LMOV AL, AHOUT DX, ALCNT1:……CNT2:……例,某外部可屏蔽中断的类型码为0AH,它的中断服务程序的入口地址是2010H:12ACH,请用8086•汇编语言直接编程,将中断服务程序的入口地址填入中断的向量表中。

中断类型码为0AH,中断向量地址=0AH*4=28H,将12ACH送0000H:0028H,将2010H送0000H:002AH。

方法一:PUSH ESMOV AX,0000HMOV ES,AXMOV ES:WORD PTR [28H],12ACHMOV ES:WORD PTR [2AH],2010HPOP ES方法二:PUSH ESMOV AX,0000HMOV ES,AX MOV DI,0AH*4 MOV AX,12ACH STOSWMOV AX,2010H STOSWPOP ES。

相关主题