日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

7-指令系统

發布時間:2023/12/3 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-指令系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

README】

1.本文總結自bilibili《計算機組成原理(哈工大劉宏偉)》的視頻講解,非常棒,墻裂推薦;


機器指令:

  • CPU能夠識別并且執行的操作命令;有可以理解為不同cpu,在生產時預設了一組或一簇指令;

指令集:

  • cpu能夠執行的所有機器指令的集合;指令集也是軟硬件的交界面
  • 軟件通過指令系統告訴硬件做什么操作;硬件通過指令系統執行操作并返回操作結果;

【1】機器指令

?指令字長: 一條指令的長度有多少位

【1.1】指令的一般格式

操作碼字段地址碼字段

【1.1.1】操作碼

操作碼: 指出機器做什么操作?此外還有些操作碼指出機器應該對什么類型的數據進行操作;
長度固定: 為了譯碼方便,譯碼器電路簡單;

3)擴展操作碼技術

3.1)為了支持操作碼的長度可變,我們要采用擴展操作碼技術來擴展操作碼長度

  • OP:操作碼部分;
  • A1,A2,A3:地址碼;

假設操作碼和地址碼都是4位;所以指令集最多15條指令; 無法滿足計算機進行復雜操作的需求;

3.2)總結:

  • 三地址指令:4位操作碼,無標識,其中 15~12位是操作碼;指令集最多15條指令;
  • 二地址指令:8位操作碼,最高位4個1為標識,其中 11~8位是操作碼;指令集最多15條指令;
  • 一地址指令:12位操作碼,最高位8個1為標識,其中7~4操作碼;指令集最多15條指令;
  • 零地址指令:16位操作碼,最高位12個1為標識,其中3~0是操作碼;指令集最多15條指令;

三地址指令操作碼,每減少一種最多可多構成 2^4 種二地址指令;
如三地址指令的高4位是 1110,而不是1111;就可以多產生2^4種二地址指令;

3.3)問題1:哪些指令用長操作碼,哪些用短操作碼指令呢?

  • 高頻使用的指令,用短操作碼;
  • 低頻使用的指令,用長操作碼;

【1.1.2】地址碼

地址碼指的是內存地址;

1)四地址指令:

  • 它的尋址范圍是2^6=64;內存尋址范圍太小了,只能尋址到64個內存單元;

那如何增加指令尋址范圍?

  • 移除A4地址:A4存儲了下一條指令地址; 而下一條指令地址存儲在PC寄存器中,而不是當前指令中;這樣就形成了三地址指令

2)三地址的指令:

  • 它的尋址范圍是 2^8=256;照樣很小;繼續改進;

3)二地址指令:

  • 移除A3地址碼,用A1或A2存儲計算結果;所以地址碼就只有2個;尋址范圍為 2^12=4k個存內存單元; 還是很小 ;

4)一地址指令

  • 用ACC累加寄存器代替A1或A2;所以移除A2,指令中可以只保留一個數的地址;另一個操作數保存在ACC寄存器;
  • 尋址范圍:2^24=16M; 尋址范圍大大增加 ;
  • (ACC可以使用隱含尋址的方式)

5)零地址:無地址碼;

  • 如,計算ACC中的操作數是否等于0 ;
  • 如,add指令計算棧頂的兩個操作數的和,并將和保存在棧頂;就不需要地址碼;

【1.2】 指令字長

操作碼:

  • 指出機器做什么操作?此外還有些操作碼指出機器應該對什么類型的數據進行操作;

長度固定:

  • 為了譯碼方便,譯碼器電路簡單;

【小結】指令操作碼與地址碼

1)用一些硬件資源代替指令字中的地址碼:

  • 如ACC累加寄存器(隱含尋址)存儲操作數,這樣指令中就可以只存儲一個操作數的地址;而無需存儲兩個操作數的地址;

2)當指令的地址字段為寄存器時

  • 三地址, OP R1 R2 R3 ; R1 R2 R3地址指的是寄存器的地址; 這樣就直接訪問寄存器,而不是訪問內存;


【2】操作數類型和操作種類

操作數:指的是指令要處理的數據;
操作數的類型:內存地址,或數字,或字符,或邏輯數;

1)數據在存儲器中的兩種存放方式:

  • 大端方式:(內存字地址就是數據高字節所在地址)數據高字節放在內存高地址,數據低字節放在內存低地址;
  • 小端方式:(內存字地址就是數據低字節所在地址)數據低字節放在高地址,高字節放在低地址;

2)字節編址

2.1)方法1:從任意位置開始存儲;

存儲字長64位(8字節)

  • 內存的數據位(MDR寄存器)是64位,每次訪存可以存取64bit的數據;

機器字長32位(4字節)

  • 寄存器的空間是32位,每次只能傳輸4字節數據;

機器字長:CPU一次能處理數據的位數,通常與CPU的寄存器位數有關。

存儲字長:存儲器中一個存儲單元(存儲地址)所存儲的二進制代碼的位數,即cpu中的MDR(數據寄存器)的位數。

指令字長:計算機指令字的位數。

數據字長:計算機數據存儲所占用的位數。

上述定義的字長都必須是字節的整數倍;

?上述缺點有1個例子:一個數據跨了2個存儲字進行存儲;比如各占半個;這個時候就需要2個訪存,每次取半個存儲字;

2.2)方法2:從一個存儲字的起始位置(每個存儲字或機器字占4字節)開始訪問;

缺點:

  • 浪費存儲空間;

問題:有沒有一種方式可以減少存儲空間浪費,又可以保證任何一種類型的數據(小于存儲字長)在一個存取周期當中,都可以進行訪問?

2.3)方法3:邊界對準方式(從內存地址的整數倍位置開始訪問)

以機器字長32位=4個字節為例;

?數據存放的起始地址是數據長度(如8位或16位)的整數倍


【2.3】 操作類型

?

?

?


【3】 尋址方式

參見 指令尋址方式與數據尋址方式_PacosonSWJTU的博客-CSDN博客

?


【4】 指令格式舉例

指令集舉例:

【4.1】IBM360 CPU的指令格式

IBM360 有5種指令格式:

  • 第1種地址格式,RR格式:二地址,即2個寄存器參加操作,結果保存在1個寄存器中;操作碼的長度是8位; 指令長度16位;
  • 第2種地址格式, RX格式: 二地址,即寄存器與存儲器,其中R1是寄存器,X是變址寄存器,B是基址寄存器,D是偏移地址;采用基址+變址的方式進行尋址;
  • 第3種地址格式,RS格式:三地址,即寄存器與存儲器間的操作;如寄存器和內存間進行成組的數據傳送,如把寄存器R1到R3(包括R1 R3)的數據成組的傳送到內存中;內存的起始地址采用基址尋址的方式來做; B是基址寄存器,D是偏移地址;
  • 第4種地址格式,SI格式:二地址,即立即數與內存操作數進行操作;
  • 第5種地址格式,SS格式:二地址,即內存操作數與內存操作數進行操作;如內存中進行數據傳輸; B1,D1分別是源地址基址和偏移量;B2,D2是目的地址基址和偏移量;含義是把起始地址為B1+D1,長度為L的內存塊數據轉存到以B2+D2為起始地址的內存塊中;

補充:

  • S=Storage=內存;
  • R=Resiter=寄存器;
  • X=變址寄存器;
  • B=基址寄存器;
  • D=偏移量;

【4.2】Intel 8086 CPU的指令格式

?


【5】RISC技術

RISC: 精簡指令集計算機;
CISC: 復雜指令集計算機;

RISC技術作用: 把20%的高頻簡單指令組合形成80%的低頻指令;

?

操作碼都是寄存器對內存的傳輸;

?

?

?

總結

以上是生活随笔為你收集整理的7-指令系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。