注册 登录
编程论坛 汇编论坛

一道汇编题目,困扰好几天了求解答

nihaoburen 发布于 2018-08-12 19:10, 3118 次点击
求解第一个画圈部分和第三个画圈部分
为什么要除以BL?
BL为什么要取51和5,根据是什么?
第二个画圈部分,为什么要OR AL,80H
作用是什么,要是没有这条指令会出现什么状况?哪里错了
只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录
7 回复
#2
nihaoburen2018-08-14 15:30
求助版主啊
#3
nihaoburen2018-08-15 13:56
求助啊
#4
wmf20142018-08-17 17:22
似乎代码还没有提供全。如果能给出tempdata和segdata处的数据就好分析了。
从接线图可知:B8255是8段数码管,C8255高4位是用于选择显示的数据位的,低电平有效。
div 51的目的是要得到余数暂存到ah中,xlat指令才是取数据显示的,这和寄存器si(tempdata)、bx(segdata)的数据有关。
div 5被除数就是div 51后的余数,由于没有后续代码,也看不出做什么。
or al,80的作用就是显示出该位的小数点。
#5
nihaoburen2018-08-18 12:38
只有本站会员才能查看附件,请 登录
#6
nihaoburen2018-08-18 12:38
只有本站会员才能查看附件,请 登录
#7
nihaoburen2018-08-18 12:39
回复 4楼 wmf2014
看楼上,图片补充完全了
OR AL 80H是显示小数点?不对吧,首位之后显示小数点?
#8
wmf20142018-08-20 16:57
从所有资料分析“or al,80”的确是小数点,首位是百位数(8255PC高四位为1101,低位有效),次位是十位数(8255PC高四位为1011),最后一位单位符号类似“ц”(8255PC高四位为0111,数码显示段为00011100,各位依次对应数码显示段为DP、G、F、E、D、C、B、A)。
tempdata为数模转换后的电压值,模拟显示了几个数据如下:
tempdata值     数码显示
FFH(255)        5.0ц
80H(128)        2.5ц
40H(64)         1.2ц
18H(24)         0.4ц
32H(50)         0.Aц
大概就是数模转换一个0至5伏的电压值并显示出来吧。
1