国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【深圳 IO 攻略】第 22 關:加密貨幣存儲終端

2022-06-06 17:06 作者:ココアお姉ちゃん  | 我要投稿

本文首發(fā)于 B 站《深圳 IO》文集(https://www.bilibili.com/read/readlist/rl569860)。原創(chuàng)不易,轉載請注明出處。

關卡展示

本關的【讀卡器】會不定期地發(fā)送一些數(shù)據(jù)包,有時候是長度為 8 的卡號數(shù)據(jù),表示用戶插卡;有時候是一個 -1,表示當前已插卡的用戶退卡。在用戶插著卡時,會塞入一些面值 20/50/100 元的紙幣,我們需要記錄用戶在插卡期間存入了多少金額,并在用戶退卡時,向【網(wǎng)絡端口】輸出長度為 9 的【卡號 + 存錢金額】數(shù)據(jù)包。

本關因為卡號是 8 位數(shù)字,單純的 acc、dat 寄存器是存不下的。這時候我們必須要借助外部的隨機存儲器 RAM 來動態(tài)存儲當前用戶的卡號,存錢期間用 acc 寄存器記錄存錢金額,等到用戶退卡時,我們再從 RAM 中重新把卡號讀出來,從 acc 里將存錢金額讀出來,一起發(fā)送到【網(wǎng)絡】端口。電路圖和代碼如下:

一塊芯片寫不下所有的邏輯代碼,必須分成兩塊芯片寫。左邊的 MC6000 用于處理用戶插卡時的“記錄卡號”和“記錄已存金額”兩項任務,而當用戶退卡時,左邊的芯片將當前用戶的已存金額發(fā)給右邊的 MC4000X,委托它將卡號和金額發(fā)送給網(wǎng)絡端口。


我們先看左邊的芯片。第 1~6 行的代碼和第 13 關《古錢幣付款終端》里統(tǒng)計投入金額的代碼是一樣的套路,都是為了計算當前用戶迄今為止已投入的金額數(shù)量,我不再重復闡述。

從第 7 行開始,都是根據(jù)從讀卡器讀到的數(shù)字,進行相應的操作。首先,我們將當前時鐘周期里讀卡器的首數(shù)字放入 dat(mov x0 dat),然后判斷首數(shù)字是 -999、-1 還是非負數(shù)(tcp dat -1)。如果是 -999,表示讀卡器中暫無數(shù)據(jù),直接跳到最后休眠一秒(- jmp e)。如果讀卡器是非負數(shù),說明讀到了卡號,我們將卡號的每一位數(shù)存入 RAM(+ mov dat x2),休眠一秒后繼續(xù)讀取(+ jmp e),直到卡號的所有位數(shù)都讀取完畢,讀卡器中無緩存數(shù)據(jù),讀到 -999 為止。而當首數(shù)字是 -1 時,我們關閉所有的 + - 號指令,跳到第 12 行:我們將當前用戶的已存金額發(fā)送給右邊的芯片(mov acc x3),同時清除 acc 寄存器,準備記錄下一個客戶的已存金額(sub acc)。做完以上操作后,休眠一秒,進入下一個時鐘周期(slp 1)。

現(xiàn)在我們看右邊的芯片。右邊的芯片用 acc 寄存器表示“上一次讀取的卡號是第幾位數(shù)”。首先等待左邊芯片發(fā)送退卡信號(slx x3)。等待到了以后,從 RAM 里連續(xù)讀取數(shù)字發(fā)往【網(wǎng)絡】端口(mov x0 x2)。我們從第 0 位數(shù)開始讀,當剛剛讀的不是第 7 位數(shù)時(tcp acc 7),令下一次要讀取的位數(shù) +1(- add?1),并跳回到第 2 行繼續(xù)讀(- jmp 2),直到將所有 8 位數(shù)都讀完后,將左邊芯片發(fā)來的已存金額數(shù)量發(fā)給右邊的【網(wǎng)絡】端口(mov x3 x2),同時將已讀位數(shù)清零,準備迎接下一次任務(sub acc)。

點擊左下角的【模擬】,稍等片刻,便會彈出結算界面:


【深圳 IO 攻略】第 22 關:加密貨幣存儲終端的評論 (共 條)

分享到微博請遵守國家法律
特克斯县| 苍南县| 龙山县| 临武县| 昌邑市| 金坛市| 漯河市| 当雄县| 遵义市| 玉环县| 绥化市| 遵化市| 韶关市| 金山区| 驻马店市| 神农架林区| 锡林浩特市| 鄂托克前旗| 南乐县| 平潭县| 双峰县| 长丰县| 沁阳市| 巫山县| 巫溪县| 晋宁县| 临夏县| 镇赉县| 鄂托克旗| 阿克苏市| 宜川县| 黔南| 吉安县| 新源县| 汶川县| 历史| 南丹县| 昌平区| 江安县| 大冶市| 安康市|