色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

1985年我是如何寫代碼的

  英文原文:How I coded in 1985

  回到 1985 年,我還在給一個(gè)給瓶子貼標(biāo)簽的機(jī)器計(jì)算機(jī)化。制造這個(gè)機(jī)器的公司用機(jī)電控制,將標(biāo)簽從卷軸上撕下帖到傳送帶傳來的產(chǎn)品(例如洗發(fā)液瓶子)上。整個(gè)過程需要工作在毫米級(jí)精度上,因?yàn)橄M(fèi)者不喜歡沒有完全對(duì)齊的標(biāo)簽。

  不幸的是,機(jī)電控制不像電腦控制那樣靈活,因此該公司與當(dāng)?shù)匾凰W(xué)院(我正在該校學(xué)習(xí)電子學(xué))簽訂了合同,用 KIM-1來設(shè)計(jì)電腦控制原型。另一個(gè)學(xué)生整合機(jī)器,他把傳送帶,標(biāo)簽發(fā)放機(jī)制,步進(jìn)電機(jī)控制,還有探測標(biāo)簽和產(chǎn)品的紅外感應(yīng)器進(jìn)行組裝。

  我的工作是用 6502 匯編語言寫軟件。不幸的是,沒有編譯器,而且 KIM-1 只有一個(gè)十六進(jìn)制的小鍵盤和一個(gè)小的顯示屏。因此這意味著要手工寫代碼,手動(dòng)編譯和打字。代碼是這樣子的:

  很快電腦控制需要變得更加靈活。程序首先自動(dòng)校驗(yàn):測量卷軸上的標(biāo)簽自身的長度,測量標(biāo)簽之間的距離,并且它啟用了一個(gè)運(yùn)算器快速設(shè)立”懸掛”距離(標(biāo)簽要伸出去多少才能讓產(chǎn)品抓到)。

  在運(yùn)行中,它要能自動(dòng)檢測傳送帶移動(dòng)的速度,還有當(dāng)供應(yīng)卷軸上的標(biāo)簽缺失時(shí)(當(dāng)一個(gè)卷軸意外掉落時(shí)就會(huì)發(fā)生)進(jìn)行補(bǔ)償和標(biāo)記。

  當(dāng)然像這樣寫代碼是一種痛苦。你首先必須寫完代碼(藍(lán)色),然后轉(zhuǎn)化成機(jī)器碼(紅色),并計(jì)算每個(gè)指令的內(nèi)存地址和相對(duì)跳轉(zhuǎn)地址。那時(shí)候我沒有能夠計(jì)算十六進(jìn)制的計(jì)算器,所以我自己完成大部分所需的計(jì)算(如在大腦里計(jì)算相對(duì)跳轉(zhuǎn)地址)。

  然而它教會(huì)了我兩件事:在第一時(shí)間寫對(duì)代碼 和 學(xué)會(huì)在大腦中運(yùn)行代碼。后者至今仍然重要。我調(diào)試時(shí)還是會(huì)先在大腦里跑一遍。通常情況下我會(huì)先于 gdb 或類似的工具,使用我的大腦調(diào)試器。KIM-1 里只有最基本的調(diào)試功能,我在程序里也寫了點(diǎn),但是大部分調(diào)試都是盯著輸出(十六進(jìn)制顯示屏上),(步進(jìn)器的)行為看,還有在腦子里運(yùn)行代碼。

  如果你好奇,這里是整個(gè)程序

  PS:一些讀者指出在 1985 年 KIM-1 離先進(jìn)水平還很遠(yuǎn),而且我們有很多好東西例如編譯器等等。是的。事實(shí)上比這還早的時(shí)候我用 BASIC 和 ZASM(Z80 編譯器)在 CP/M下編程,但是你是用你已有的條件來干活的,工學(xué)院有空閑的 KIM-1,它有不錯(cuò)的I/O,因此它是制作嵌入式控制器的很好的原型系統(tǒng)。

  編譯:DEEPFISH@奇風(fēng)余谷),譯文鏈接

it知識(shí)庫1985年我是如何寫代碼的,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 和平县| 田林县| 湖南省| 烟台市| 南宫市| 北安市| 柘荣县| 余干县| 凌源市| 晋州市| 榕江县| 民权县| 宕昌县| 孝义市| 莆田市| 贡嘎县| 怀仁县| 定陶县| 大埔区| 三江| 潍坊市| 平潭县| 城口县| 桂东县| 湾仔区| 江北区| 安龙县| 商丘市| 明水县| 阜宁县| 汨罗市| 时尚| 巫山县| 宁城县| 彭山县| 通州区| 朔州市| 通城县| 安岳县| 孟连| 乌什县|