2016-11-21 77 views
1

我所經歷的鴯鶓8086個例子並堅持以下thermometer.asm代碼無法理解示例代碼

#start=thermometer.exe# 

; temperature rises fast, thus emulator should be set to run at the maximum speed. 

; if closed, the thermometer window can be re-opened from emulator's "virtual devices" menu. 



#make_bin# 

name "thermo" 

; set data segment to code segment: 
mov ax, cs 
mov ds, ax 

start: 

in al, 125 

cmp al, 60 
jl low 

cmp al, 80 
jle ok 
jg high 

low: 
mov al, 1 
out 127, al ; turn heater "on". 
jmp ok 

high: 
mov al, 0 
out 127, al ; turn heater "off". 

ok: 
jmp start ; endless loop. 

誰能解釋一下#make_bin##start=thermometer.exe#手段。另外,爲什麼我們不需要在使用端口之前配置端口。

+1

這些是emu8086指令(不是x86彙編的一部分),所以請查閱emu8086的文檔。 ...關於「配置端口」..不知道你是什麼意思。 'out'指令不需要任何配置,它將根據這些值設置I/O總線。閱讀總線的設備是否需要配置,這是不同的主題,取決於設備的構造和設計如何操作,請參考設備的文檔。 – Ped7g

+0

接下來的3個網址可以幫助您:http://muhendislik.istanbul.edu.tr/elektrikelektronik/wp-content/uploads/2013/12/Emu8086_tutorial.pdf,http://www.coval.net/teach/emu8086/ helpfiles/compatibility.html,https://www.facebook.com/Emu8086-and-assembly-language-Tips-n-Ticks-152336431476411/。 –

回答

0

我把它作爲程序的一部分。 這部分沒有任何人在溫度計報告溫度時打開或關閉溫度計。 #make_bin#行用於創建.bin,有時可以放入eprom。 而行#start = thermometer.exe#運行讀取溫度的程序。 記住,當你發現#....#總是一個編譯器指令。