一实验目的:⑴了解并掌握如何用汇编语言对外设进行控制; ⑵学习构建应用案例;二实验内容:根据emu8086的应用例程,构建一个控制交通灯、温度计、机器人或者步进电机的应用案例。如,可以通过simpleio输入步进电机要转的角度,然后控制stepper motor旋转,等等。三实验原理:通过emulator8086的例程学习用汇编语言对外设的控制,掌握程序的调试,修改,注释。四实验过程:1选用例程温度计案例;源代码如下#start=thermometer.exe##make_bin#
; set data segment to code segment: mov ax, cs mov ds, ax ;首先设置数据段代码段: start:
in al, 125 ;启动温度计,设定加热温器温度125度
cmp al, 90 ;设定最小温度90度
jl low ;如果烧杯温度小于90度,指向low
cmp al, 91 ;如果烧杯温度大于91度,指向high jle ok ;如果小于等于90度,指向OK jg high ;如果大于90度,指向high
low: mov al, 1 ;打开加热器 out 127, al ; turn heater "on". jmp ok ;跳转OK
high: mov al, 0 ;关闭加热器,直接进入OK out 127, al ; turn heater "off".
ok: ;重新进入下个循环
jmp start ; endless loop. 2流程图:
C伪代码: First:初始化,设置数据段代码段 Then:进入start,设定加热温度125度 next:设定最小温度90度,比较当前温度计温度与90度差距 If:温度小于90度,指向low If:温度大于等于91度,指向high else:指向ok Low:打开加热器,程序跳转ok High:关闭加热器,程序跳转ok Last Ok:返回first,重新进入下一个循环。 3 题目分析:首先初始化程序,设定加热器温度125度,比较加热器温度是否在90-91度之间,通过关闭打开加热器使烧杯中温度维持在90-91度间,一直循环下去。目的是想把烧杯温度维持在90度左右,实际也可以达到目的。
4实验结果:通过观察,发现温度计温度维持在90度至91度间,达到预期设想,调节速度快且稳定。
|