微机原理经典习题

更新时间:2023-10-28 14:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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:250A0H ES:2EF00H SS:8FF00H 3)该操作数的物理地址=? 解: 各段分布及段首址见右图所示。 操作数的物理地址为: 250AH×10H+0204H = 252A4H

3、若已知(SS)=1000H、(SP)=2000H;则堆栈段的段首地址=?1000H栈顶地址=?12000H

若现在把1234H送入堆栈,则它所在的存储单元地址=? 1988H 若该段最后一个单元地址为2FFFH,则栈底地址=?12FFFH 4、MOV AX,[3102H]

AL=(3102H) , AH=(3103H)

如果(DS)=2000H, (23012H) = CDH, (23013H) = ABH;指令执行后,AX=? ABCDH 5、MOV AX,[SI]

若 (DS)=6000H, (SI)=1200H, (61200H)=44H, (61201H)=33H 则指令执行后,(AX)=3344H。

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

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

8、把AH和AL中的非压缩BCD码组合成压缩的BCD码, 放到AL中。 MOV CL, 4 SHL AH, CL OR AL, AH 9、把AX寄存器清零。

① MOV AX,0 ② XOR AX,AX ③ AND AX,0 ④ SUB AX,AX 10、把AL中的数x乘10 SAL AL,1 ; 2x MOV AH,AL SAL AL,1 ; 4x SAL AL,1 ; 8x ADD AL,AH ; 8x+2x = 10x

11、(BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈 MOV CH, 4 ; 循环次数 MOV CL, 4 ; 移位次数 NEXT: ROL BX, CL

MOV AX, BX AND AX, 0FH PUSH AX DEC CH JNZ NEXT

12、用串传送指令实现200个字节的数据传送: LEA SI,MEM1

LEA DI,MEM2 MOV CX,200 CLD REP MOVSB

13、把从A000H开始的2KB内存单元清零。 程序段如下: MOV DI,0A000H MOV AX,0 MOV CX,1024 CLD

REP STOSW 14、从一个字符串中查找一个指定的字符

mess db ‘COMPUTER’

lea di, mess mov al, ‘T’ mov cx, 8 cld

repne scasb

15、比较两个字符串,找出不相匹配的地方 lea si, mess1 lea di, mess2 mov cx, 8 cld

repe cmpsb

16、?、? 是双精度数,分别存于 DX,AX 及 BX,CX 中, ? > ? 时转 L1 ,否则转 L2 CMP DX, BX JG L1 JL L2 CMP AX, CX JA L1 L2: …… L1: ……

18、给1A000H开始的256个内存单元均减去1,若 发现某个单元减为0则立即退出循环,其后的单元不再减1。程序段如下:(逻辑地址为1A00:0H)

MOV AX, 1A00H

MOV DS, AX ; 1A00H段 MOV DI, -1 MOV CX, 256 GOON: INC DI

DEC BYTE PTR[DI]

LOOPNZ GOON HLT 21.说明下面两个定义的不同之处:

DB ‘AB’ ;41H在低字节,42H在高字节 DW ‘AB’ 22. TABLE DB 10 DUP(?) BUFFER DW TABLE,$+3

设TABLE的偏移地址为0080H,则汇编后$+3的内容为008fh 23. 求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。

MOV AX,[300H] MOV BX,[302]

SUB AX,BX JA AA NEG AX

AA: MOV [200H],AX INT 20H

24. BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中。

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

BUF DB 12H, 34H, -56H, -98H, 096H, 68H, 56H, 80H N=$-BUF

BUF1 DB N DUP(0) BUF2 DB N DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV DX,DATA MOV DS,AX LEA SI,BUF LEA DI,BUF1

LEA BX,BUF2 MOV CX,N AA: MOV AL,[SI]

INC SI CMP AL,0 JGE BB MOV [BX],AL INC BX JMP CC

BB: MOV [DI],AL INC DI CC: DEC CX JNZ AA MOV AH,4CH INT 21H CODE ENDS END START

25. OUT指令将使总线的IOW#信号有效, IN指令将使总线的IOR#信号有效

27.中断步骤:中断请求、中断判优、中断响应、中断服务 、中断返回

28. 中断类型号为23(17H),中断服务程序的入口地址5CH、2340H:7890H,存放在内存的哪些内容单元?请用8086?汇编语言直接编程,将中断服务程序的入口地址填入中断向量表中。

PUSH ES

MOV AX,0000H

MOV MOV MOV POP ES,AX

ES:WORD PTR [5CH],12ACH ES:WORD PTR [5EH],2010H ES

29.

29. 中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。 CLI

MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV [SI],AX MOV AX,SEG int48h MOV [SI+2],AX STI

30. 若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,

31. 主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H

32. 按以下要求初始化8259A,设端口地址为2000H和2001H:

– 接口地址为20H和21H;

– 中断为上升沿触发;单片8259A;不写ICW4; – 与IR0-IR3对应的中断向量码为08H-0BH; – IR4-IR7不使用

INIT8259A:

MOV DX,2000H ;A0=0,写ICW1

MOV AL,12H ;上升沿触发,单片,不写ICW4 OUT DX,AL

MOV DX,2001H ;A0=1,写ICW2,OCW1 MOV AL,08H ;ICW2 OUT DX,AL

MOV AL,0F0H ;OCW1:屏蔽IR4-IR7 OUT DX,AL

33.8255A口地址40H,A口工作在方式0输出,B口工作在方式1输入,C口的PC5输出为1。 方式字:10000110B 复位置位字:00001011B 初始化程序:

MOV AL,10000110B OUT 43H,AL MOV AL,00001011B OUT 43H,AL

36. 8253地址为40H~43H,计数器1、 方式1、计数初值1020H。 MOV AL,72H ;方式字 OUT 43H,AL

MOV AL,20H ;计数低位 OUT 41H,AL

MOV AL,10H ;计数高位 OUT 41H,AL

37. 采用8253作定时/计数器,其接口地址为0120H~0123H。输入8253的时钟频率为2MHz。

计数器0: 每10ms输出1个CLK脉冲宽的负脉冲计数器1: 产生10KHz的连续方波信号

计数器2: 启动计数5ms后OUT输出高电平。 并编写初始化程序。 ? 确定计数初值:

CNT0: 10ms/0.5us = 20000 CNT1: 2MHz/10KHz = 200 CNT2: 5ms/0.5us = 10000 ? 确定控制字:

CNT0:方式2,16位计数值 00 11 010 0 CNT1:方式3,低8位计数值 01 01 011 0 CNT2:方式0, 16位计数值 10 11 000 0 CNT0:

MOV DX, 0123H MOV AL, 34H OUT DX, AL MOV DX, 0120H MOV AX, 20000

OUT DX, AL MOV AL, AH OUT DX, AL CNT1: …… CNT2: ……

例,某外部可屏蔽中断的类型码为0AH,它的中断服务程序的入口地址是2010H:12ACH,请用8086?汇编语言直接编程,将中断服务程序的入口地址填入中断的向量表中。

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

方法一: PUSH ES MOV AX,0000H MOV ES,AX

MOV ES:WORD PTR [28H],12ACH MOV ES:WORD PTR [2AH],2010H POP ES 方法二: PUSH ES MOV AX,0000H

MOV ES,AX MOV DI,0AH*4 MOV AX,12ACH STOSW MOV AX,2010H STOSW POP ES

本文来源:https://www.bwwdw.com/article/s8e2.html

Top