一道汇编题,有部分答案,需解释及补充

题目:
欲使用8253的0通道周期性地发送脉冲,周期为1ms,试编出初始化程序(地址自定,时钟频率为2MHz)。若哟啊求8253的地址为80H~83H,试用3-8译码器实现地址译码,并完成8253与PC机总线之间其他信号的连接
部分答案:
选用方式0,时钟频率2MHz,脉冲周期要求为1ms,所以
计数值 n=2x(10的6次方)/1x(10的3次方)=2000=07D0H
初始化程序如下:
MOV DX,PORTC ;控制端口
MOV AL,00110100B;计数器0,方式2,二进制计数,送16位计数值
OUT DX,AL
MOV DX,PORT0 ;计数器0
MOV AL,0D0H ;计数器的低8位数
OUT DX,AL
MOV AL,07H ;计数器的高8位数
OUT DX,AL
8253与pc总线之间的部分连接在问题下面的图片里。

我想知道的是:
1.为什么计数值是
n=2x(10的6次方)/1x(10的3次方)=2000=07D0H
2.似乎从给的端口来看,控制端口应该就是83H,而0通道端口应该就是80H,是不是不要用PORTC和PORT0,而用题目中给的端口
3.8253与pc系统总线的连接图中,没有标明哪些信号与那个有加号的两个方块图形链接,你认为应该是是哪些信号;
下面8253与pc系统总线的连接图中,那个带加号的长方形块是不是“或”门;
下面8253与pc系统总线的连接图中,在图上面,写了一个80H的二进制表示,但没有标明哪个信号线接哪个接口,可不可以这么接,G1接A7,A10、A9、A8分别接A,B,C,如果那个带加号的长方形块代表的是“或”门,那么A15~A11分成两组分别接到两个“或”门上去,但是我不知道A6~A0接到哪个接口上去,其实最重要的是A1和A0两位,因为8253的地址是80H~83H,所以A2到A15都铁定是一样的,就是图中表示的那样,而A1、A0可以是00,01,10,11四种情况(update:是不是A6到A0可以直接接到pc数据总线A6到A0)

1、计数值就应该是: [时钟频率]*[要产生的脉冲周期],或者你看这样是不是更容易理解:[要产生的脉冲周期]=n*[时钟周期]
2、那个答案没有说明白,PORTC和PORT0是常量,值就是83h和80h。
3、你说的基本对,只是A2~A6也要接到那2个或门上。至于A1和A0,直接接到8253的对应引脚上。你说的那4种情况就是8253内部用来区分端口的,否则怎么会有“8253的地址是80H~83H”呢。
关于(update:是不是A6到A0可以直接接到pc数据总线A6到A0):你理解错了,A0~A15本身就是pc的“地址”总线。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-17
1.为什么计数值是
n=2x(10的6次方)/1x(10的3次方)=2000=07D0H

上面 是时钟频率,下面是脉冲周期 所以得到每秒计算的数据数

2.似乎从给的端口来看,控制端口应该就是83H,而0通道端口应该就是80H,是不是不要用PORTC和PORT0,而用题目中给的端口

时间上还是在使用 PORTC和PORT0,只是图上的表象做个表示而已

3.8253与pc系统总线的连接图中,没有标明哪些信号与那个有加号的两个方块图形链接,你认为应该是是哪些信号;G2A

下面8253与pc系统总线的连接图中,那个带加号的长方形块是不是“或”门;
下面8253与pc系统总线的连接图中,在图上面,写了一个80H的二进制表示,但没有标明哪个信号线接哪个接口,可不可以这么接,G1接A7,A10、A9、A8分别接A,B,C,如果那个带加号的长方形块代表的是“或”门,那么A15~A11分成两组分别接到两个“或”门上去,但是我不知道A6~A0接到哪个接口上去,其实最重要的是A1和A0两位,因为8253的地址是80H~83H,所以A2到A15都铁定是一样的,就是图中表示的那样,而A1、A0可以是00,01,10,11四种情况(update:是不是A6到A0可以直接接到pc数据总线A6到A0)

汇编语言问题,题目如下,我知道答案,但不懂,求详细解释
实际上,有些段是重叠的,重叠部分,可以用物理地址计算出来。OF = 0 DF = 0 ZF = 0 CF = 0

一道简单的汇编语言问题求详细解答
XOR ax,ax ;ax清零 mov bx,2 ;bx=2 mov cx, 4 ;cx=4做循环用 MOV DX,3 ;dx=3;l20:inc ax ;ax=ax+1 adc bx,ax ;bx=ax+bx+cf这个是防止溢出,SHR DX,1 ;移位指令,将DX进行移位,该指令会影响cf位。右移指令,是将最低位移入CF,CF位移入最高位。loope l20 ...

这个汇编题选神马???给个理由
NEG是汇编指令中的求补指令,NEG指令对操作数执行求补运算:用零减去操作数,然后结果返回操作数。求补运算也可以表达成:将操作数按位取反后加1;因此10000按位取反后为11101111,加1为11110000,写成十六进制为F0H,因此答案在B和D之间选择。CF 进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否...

汇编练习题。求解释
DB $-DAT1; $为地址计数器 $-dat1=4 DAT2 DB 10H DUP(1,2,3)...MOV DX,SIZE DAT1 ;size操作符,当其操作的变量是dup复制的时,操作结果为变量的个数,否则为单个变量的字节数,此指令中,dat1不是dup复制的,单个变量的字节数为1,所以dx=01h.ADD DX,WORD PTR DAT1+...

·一道简单的汇编语言问题求详细解答
QQ:shr cx,1 ;是将cx逻辑右移1位,CX=0000 0000 0000 0001B,CF=0 RCR AX,1 ;带进位循环右移,AX=0100 0000 0000 0000 0000B,CF=0 ADD BX,1 ;bx=bx+1,BX=03H LOOP qq ;CX-1,即CX=0000 0000 0000 0000B,等于0,结束循环。此时AX=4000H AX和BX没什么直接关系,BX中存放实际循环的...

一道汇编语言题,望详细解释
在16位汇编中:push ax sp-2 ;记住入栈-2,也就是分配16位,2个字节的空间,用来存放ax push bx sp-4 push cx sp-6 pop ax sp-6+2 ax=5566H ; 出栈一次,腾出2字节16位的空间,还给系统,系统回收。pop cx sp-6+4 cx=3344H sp=1FFCH 2字节=(16位...

求解一道汇编问题
因为基址寄存器是BX,所以段地址在DS中,其值为 3000H 物理

一个汇编问题,我是初学者,希望解答的人能说清楚一些。问题是AX怎么变成...
用DEBUG 软件进行调试,它的四个段,都是是相同的,共同使用同一个64K的空间。堆栈段和代码段,是共用的,代码部分从0100H往下使用,堆栈部分,从FFFFH往上使用。DEBUG 软件本身,也要使用这个堆栈,特别是单步调试的时候,它要用堆栈存放很多东西。现在,楼主强行修改了DEBUG的堆栈段,结果就把DEBUG弄...

汇编题目
答案:第1空:"5",第2空:"A" 。做法:1,出入栈每个数据以字(2bytes)为单位,入栈向低地址伸展,即入栈sp-n*2,出栈为sp+n*2,物理地址SS*10H+SP 2,常识小写字母ASCII码值比大写字母大20H,数字的ASCII码值低四位为数字,高四位相同 九、根据下列各题的要求,编制程序。1.用移位、...

汇编题 求答案、
1 DX循环右移8次,相当于高低字节对换,所以为2817H。然后与0FFH与,相当于取低字节,即DX=0017H 再与17H比较,相等,所以ZF=1。所以第1题答案:(DX)=0017H,ZF=1 2 与0FH异或,相当于高4位不变,低4位取反,所以AL=5CH 与0FH按位与,相当于高4位清0,低4位不变,所以BL=03H 与...

相似回答