微机原理的题

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:46:36
一.程序分析

1. MOV AX,80F0H
MOV CL,10H
SAR AX,CL
ADD AX,80H
则有:(AX)=_______ (CL)= ________ CF=_________

2. XOR AX,AX
OR AX,0040H
TEST AX,0040H
则有:(AX)=_______ ZF=________

3. XOR AL,AL
MOV CX,3
COUNT:ADD AL,5AH
LOOP COUNT
则有:(AL)=_______ CX=________ CF=_________

二.试编制一段程序,对双精度(32位)求补,其数值放在DX:AX中

三.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址为200H。输入时钟为2MHz,让1号通道周期性的发生脉冲,其脉冲周期为1ms,试编写初始化程序段

注:8253控制格字式
D6D7;选择通道
D5D4:00——计数器锁存
01——只读/写计数器低字节
10——只读/写计数器高字节
11——先读/写计数器低字节,在读/写计数器高字节

D3D2D1:确定工作方式
D0:1——BCD码计数;0——二进制计数

先谢谢各位大哥了 谢谢谢谢

呵呵,谢谢一楼!

一.程序分析

1. MOV AX,80F0H;AX=1000 0000 1111 0000B
MOV CL,10H;CL=16
SAR AX,CL;对AX算术右移16位,每次最高位用原符号位填充,即AX=1111 1111 1111 1111B
ADD AX,80H;对AX加0000 0000 1000 0000B
则有:(AX)=_0000 0000 0111 1111B_ (CL)= _10H_ CF=_1_

2. XOR AX,AX;对AX清零
OR AX,0040H;将AX和0040H相或,结果为0040H
TEST AX,0040H;测试AX的D7位是否为1,AX内容保持不变,因为结果为1,则测试结果不为0
则有:(AX)=_0040H_ ZF=_0_

3. XOR AL,AL;对AL清零
MOV CX,3;设置循环次数3
COUNT:ADD AL,5AH;对AL循环加三个5AH,结果为1EH
LOOP COUNT ;CX减1,不等于0继续循环,直到CX=0循环结束
则有:(AL)=_0EH_ CX=_0_ CF=_1_

二.试编制一段程序,对双精度(32位)求补,其数值放在DX:AX中

分析:求补即对操作数取反加1
NOT AX
NOT DX
ADD AX,1
ADC DX,0

三.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址为200H。输入时钟为2MHz,让1号通道周期性的发生脉冲,其脉冲周期为1ms,试编写初始化程序段

分析:由已知条件“输入时钟为2MHz,让1号通道周期性的发生脉冲,其脉冲周期为1ms”可知,1号通道工作在方式2,计数值为(2×10的6次方)×(1×10的负3次方)=2000

初始化程序如下:
MOV AL,01100101;1号通道工作在方式2、BCD计数、只写高8位计数