回 帖 发 新 帖 刷新版面

主题:readbyte 的程序如何理解?

SUB readbyte (byt%)

hinib% = 0: lownib% = 0
v% = INP(ctrlport%): v% = v% AND 252
OUT ctrlport%, v%  'Set strobe low & nibsel low.
FOR v = 1 TO 100: NEXT v 

hinib% = 240 AND INP(statport%)
IF hinib% > 127 THEN
  hinib% = hinib% - 128
ELSE
  hinib% = hinib% + 128
END IF



v% = INP(ctrlport%): v% = v% OR 2: OUT ctrlport%, v%
FOR v = 1 TO 100: NEXT v
lownib% = INP(statport%) \ 16

IF lownib% > 7 THEN
  lownib% = lownib% - 8
ELSE
  lownib% = lownib% + 8
END IF
buf% = hinib% + lownib%
'PRINT buf%
v% = INP(ctrlport%): v% = v% OR 1
OUT ctrlport%, v%  'Set strobe hi.
'PRINT : INPUT mk$
'PRINT v%: INPUT mk$
END SUB

其中 ctrlport% 为25针的打印机的控制口,

回复列表 (共3个回复)

沙发

为什么读入高四位和低四位时 如果最高位是“1”则变为“0”,而如果最高位是“0”则变为“1”?

最后 为什么还能用buf% = hinib% + lownib% 将高四位和低四位合并在一起呢? 

想不明白 请高手指点

板凳

自己去翻翻计算机基础教材.

3 楼


能解释一下吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册