微机原理的题
微机原理的题
一.程序分析
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位计数值
MOV DX,200H
OUT DX,AL
MOV AL,20H
MOV DX,202H
OUT DX,AL