回 帖 发 新 帖 刷新版面

主题:还得请塞北江南老师指教

谢谢您的帮助,不愧为高手,您上次帮我改的人机对话程序中,我还是有一事不明,就是请您能解释一下“MOV BX,WORD PTR BUFR[2]
                XCHG BH,BL"
   各句的作用吗?BUFR[2]是什么意思啊??为什么还要最高位和最低为交换阿?
我太笨了,还是没弄明白!!!还得麻烦您指教,谢谢您了
[em1]

回复列表 (共1个回复)

沙发

bufer是字节类型数组,同时把2个字节传送给BX,所以要加WORD PTR 表示16访问;
bufer是输入缓冲区,其中的第一个字节即bufer[0]保存缓冲区大小的字节数,第2个字节即bufer[1]表示实际输入的字节数,从第3个字节即bufer[2]开始往后才是实际输入的数据。

高低交换,是因为bufer[2]保存的是先输入的高位,bufer[3]保存的是后输入的低位,传送给BX时,bufer[2]地址低,所以在BL中,bufer[3]因为地址高而存在BH中,于是把BX高低交换,才能正确表示两位十进制数的两个ASCII码。

我来回复

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