偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

1985年我是如何寫代碼的

開發(fā) 項目管理
回到1985年,我還在給一個設(shè)計成給瓶子貼標簽的機器計算機化。制造這個機器的公司用機電控制,將標簽從卷軸上撕下帖到傳送帶傳來的產(chǎn)品(例如洗發(fā)液瓶子)上。整個過程需要工作在毫米級精度上,因為消費者不喜歡沒有完全對齊的標簽。

回到1985年,我還在給一個設(shè)計成給瓶子貼標簽的機器計算機化。制造這個機器的公司用機電控制,將標簽從卷軸上撕下帖到傳送帶傳來的產(chǎn)品(例如洗發(fā)液瓶子)上。整個過程需要工作在毫米級精度上,因為消費者不喜歡沒有完全對齊的標簽。

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

[[71849]]

我的工作是用6502匯編語言寫軟件。不幸的是,沒有編譯器,而且KIM-1只有一個十六進制的小鍵盤和一個小的顯示屏。因此這意味著要手工寫代碼,手動編譯和打字。代碼是這樣子的:(下面兩張圖片,點擊均可查看原始尺寸)

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

在運行中,它要能自動檢測傳送帶移動的速度,還有當供應卷軸上的標簽缺失時(當一個卷軸意外掉落時就會發(fā)生)進行補償和標記。

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

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

如果你好奇,這里是整個程序

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

英文原文:JGC

譯文連接:DEEPFISH

責任編輯:林師授 來源: DEEPFISH
相關(guān)推薦

2018-12-19 17:20:17

2015-05-21 10:43:36

工程師如何寫代碼

2020-12-14 08:17:50

代碼

2011-05-26 09:39:53

程序

2010-01-04 10:07:03

程序員

2024-10-29 09:25:00

2018-02-25 11:00:34

代碼開發(fā)程序員

2020-07-15 08:17:16

代碼

2021-11-30 10:20:24

JavaScript代碼前端

2020-05-11 15:23:58

CQRS代碼命令

2013-06-07 14:00:23

代碼維護

2021-09-01 08:55:20

JavaScript代碼開發(fā)

2020-09-10 08:49:12

Docker數(shù)據(jù)容器

2020-10-10 09:09:21

CTOCRUD設(shè)計

2022-12-06 09:03:44

代碼fork系統(tǒng)

2022-10-19 11:17:35

2020-12-19 10:45:08

Python代碼開發(fā)

2019-09-20 15:47:24

代碼JavaScript副作用

2022-03-11 12:14:43

CSS代碼前端

2020-05-19 15:00:26

Bug代碼語言
點贊
收藏

51CTO技術(shù)棧公眾號