2020-2021 1學期 《網路空間安全導論》 第四周學習總結
第六章主要講低階程式設計語言與虛擬碼。第七章講問題求解與演算法設計
機器語言
1.機器語言是計算機直接使用的二進位制程式碼指令構成的語言。
人無法看懂只有機器才能讀懂。
2.機器語言內嵌在機器裡,不同計算機只能看懂自己的語言。
Pep/9 虛擬機器
虛擬機器的記憶體單元由65536位元組的儲存空間組成,字長2位元組。在這裡,我們主要學習其三個重要的暫存器。
指令暫存器 程式計時器 累加器
指令格式
一條指令由兩部分組成,指令說明符佔一位元組,運算元說明符佔兩位元組。其中,指令說明符前四個位是操作程式碼,第五位代表不同暫存器,最後三位代表不同定址方式(這裡只學習直接 001和立即000)。運算元說明符存放的是運算元本身或者運算元的地址。沒有運算元說明符的指令程式碼只有一個位元組,所以也叫一元指令。
要說明的是,不能再儲存操作碼中使用立即定址,因為我們不能將暫存器的資料儲存到運算元說明符上。
pep9 的輸入與輸出
1這裡需要明白,pep9虛擬機器用的是記憶體對映輸入輸出。其中輸入和輸出對應的地址分別是FC15和FC16。同時,該虛擬機器使用ASCⅡ字符集來表示字元,也就是是說用一個位元組來表示一個ASCⅡ碼,因此我們採用載入和儲存位元組而不是字的方式來實現輸入和輸出。
2. 拿例子來說,如果要打印出Hi,需要三種類型的命令,共五條:兩條載入位元組的指令,兩條儲存,一條停止。。
組合語言
組合語言是指通過一些助記指令碼使得機器語言更容易被記憶,減少程式設計中的錯誤。通過組合語言編出的叉程式經過彙編器翻譯成機器語言後,才能被計算機執行。
pep9組合語言
- 運算元由0x和十六進位制表示,接下來是逗號,然後是定址模式(i/d) 如:0x008B,i
2助記碼有多種,如STOP (停止執行) , LDWA(將字載入) LDBA(將位元組載入) ADDA(將字加到累加器)
偽操作
即彙編器指令,大多都是彙編器本身使用的指令。組合語言程式也支援偽操作。
表達演算法
虛擬碼是一種語言,讓我們以更清晰的形式表達演算法。
虛擬碼的功能
1變數 賦值 輸入輸出 選擇 重複
測試
明箱測試 暗箱測試 測試計劃 測試用例
第七章主要講問題求解和基於此的演算法設計
如何解決問題
1.提出問題
2尋找熟悉的情況
3分而治之
演算法
計算機問題求解過程
分析和說明階段,演算法開發階段,實現階段,維護階段。
自頂向下設計:分析問題 列出主要任務 編寫其餘的模組 根據需要進行重組和改寫
測試演算法
搜尋演算法
順序搜尋
二分檢索
排序演算法
選擇排序 氣泡排序 插入排序 快排序