導航:首頁 > 編程語言 > 羅雲彬的編程樂園

羅雲彬的編程樂園

發布時間:2025-04-11 01:34:24

A. 寄存器:我想了解多一些有關寄存器的知識,匯編編程時用的

寄存器(Register)是CPU內部的元件,所以在寄存器之間的數據傳送非常快。用途:1.可將寄存器內的數據執行算術及邏輯運算。2.存於寄存器內的地址可用來指向內存的某個位置,即定址。3.可以用來讀寫數據到電腦的周邊設備。8086 有8個8位數據寄存器,這些8位寄存器可分別組成16位寄存器:AH&AL=AX:累加寄存器,常用於運算;BH&BL=BX:基址寄存器,常用於地址索引;CH&CL=CX:計數寄存器,常用於計數;DH&DL=DX:數據寄存器,常用於數據傳遞。為了運用所有的內存空間,8086設定了四個段寄存器,專門用來保存段地址:CS(Code Segment):代碼段寄存器;DS(Data Segment):數據段寄存器;SS(Stack Segment):堆棧段寄存器;ES(Extra Segment):附加段寄存器。當一個程序要執行時,就要決定程序代碼、數據和堆棧各要用到內存的哪些位置,通過設定段寄存器 CS,DS,SS 來指向這些起始位置。通常是將DS固定,而根據需要修改CS。所以,程序可以在可定址空間小於64K的情況下被寫成任意大小。 所以,程序和其數據組合起來的大小,限制在DS 所指的64K內,這就是COM文件不得大於64K的原因。8086以內存做為戰場,用寄存器做為軍事基地,以加速工作。除了前面所提的寄存器外,還有一些特殊功能的寄存器:IP(Intruction Pointer):指令指針寄存器,與CS配合使用,可跟蹤程序的執行過程;SP(Stack Pointer):堆棧指針,與SS配合使用,可指向目前的堆棧位置。BP(Base Pointer):基址指針寄存器,可用作SS的一個相對基址位置;SI(Source Index):源變址寄存器可用來存放相對於DS段之源變址指針;DI(Destination Index):目的變址寄存器,可用來存放相對於 ES 段之目的變址指針。還有一個標志寄存器FR(Flag Register),有九個有意義的標志(

OF: 溢出標志位OF用於反映有符號數加減運算所得結果是否溢出。如果運算結果超過當前運算位數所能表示的范圍,則稱為溢出,OF的值被置為1,否則,OF的值被清為0.

DF: 方向標志DF位用來決定在串操作指令執行時有關指針寄存器發生調整的方向。

IF: 中斷允許標志IF位用來決定CPU是否響應CPU外部的可屏蔽中斷發出的中斷請求。但不管該標志為何值,CPU都必須響應CPU外部的不可屏蔽中斷所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定如下:

(1)、當IF=1時,CPU可以響應CPU外部的可屏蔽中斷發出的中斷請求;

(2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷發出的中斷請求。

TF: 狀態控制標志位是用來控制CPU操作的,它們要通過專門的指令才能使之發生改變

SF: 符號標志SF用來反映運算結果的符號位,它與運算結果的最高位相同。在微機系統中,有符號數採用補碼表示法,所以,SF也就反映運算結果的正負號。運算結果為正數時,SF的值為0,否則其值為1。

ZF: 零標志ZF用來反映運算結果是否為0。如果運算結果為0,則其值為1,否則其值為0。在判斷運算結果是否為0時,可使用此標志位。

AF: 下列情況下,輔助進位標志AF的值被置為1,否則其值為0:

(1)、在字操作時,發生低位元組向高位元組進位或借位時;
(2)、在位元組操作時,發生低4位向高4位進位或借位時。

PF: 奇偶標志PF用於反映運算結果中「1」的個數的奇偶性。如果「1」的個數為偶數,則PF的值為1,否則其值為0。

CF: 進位標志CF主要用來反映運算是否產生進位或借位。如果運算結果的最高位產生了一個進位或借位,那麼,其值為1,否則其值為0。)

以上是8086寄存器的整體概況, 自80386開始,PC進入
32bit時代,其定址方式,寄存器大小, 功能等都發生了變化, 要想學習這方面知識請參考相應資料.

關於寄存器就寫這么多了,學習匯編和學習別的語言一樣
要多想,多練,多看, 這樣才會有提高.

下面是一些匯編書籍和網站, 對你學習會有幫助的.

網站:
http://www.x86asm.com/ x86匯編小站
http://www.aogosoft.com/ Aogo匯編小站
http://211.90.225.98:22366/ 羅雲彬的編程樂園
http://cn.codeof.com/articles/programming/masm/
裡面有匯編學習資料.

書籍:

1. IBM-PC 匯編語言程序設計(2th)
2. <<80x86 IBM PC及兼容計算機(卷I和II) — 匯編語言、設計與介面技術>>; 這本書很牛, 建議入手;

中文的匯編好書比較少,如果你英語不錯的話,可以看看
下面這些(都很經典!!!):

01. <<Mastering Turbo Assembler>>

02. <<Using Assembly Language>>

04. <<Assembly Language Primer for the IBM PC/XT>>

05. <<Assembly Language from Square One>>

06. <<Assembly Language for the IBM PC>>

07. <<Assembly Language and Systems Programming for the IBM PC and Compatables>>

08. <<Assembler Inside & Out>>

09. <<The Zen of Assembly>>

10. <<IBM Microcomputers: A Programmer's Handbook>>

11. <<Programmer's Problem Solver for the IBM PC, XT, and AT>>

12. <<IBM PC ASSEMBLER LANGUAGE AND PROGRAMMING>>

13. <<80386: A Programming and Design Handbook>>, 2nd Ed

14. <<80486 Programming>>

15. <<Master Class Assembly Language>>

16. <<Programmer's Guide to PC & PS/2 Video Systems>>

17. <<Power Graphics Programming>>

18. <<Programmers Guide to the EGA and VGA cards>>, 3rd Ed.

19. <<AdvancEd Programmers Guide to the EGA/VGA>>

20. <<UndocumentEd DOS>>

21. <<DOS Programmer's Reference>>

22. <<386SX Microprocessor Programmer's Reference Manual>>

23. <<i486 Microprocessor Programmer's Reference Manual>>

24. <<The Programmer's PC Sourcebook>>

25. <<System BIOS for IBM PCs, Compatables, and EISA Computers>>, 2nd Ed.

26. <<PC Magazine Programmers Technical Reference: The Processor and Coprocessor>>

27. <<Mastering Serial Communications>>

28. <<DOS Programmer's Reference>>, 2nd Ed.

29. <<MS-DOS Programmer's Reference>>

最後祝你學習愉快

閱讀全文

與羅雲彬的編程樂園相關的資料

熱點內容
程序員放棄後會怎樣 瀏覽:160
河北模具編程 瀏覽:178
adb查找命令 瀏覽:308
安卓手機視頻文件夾怎麼打開 瀏覽:302
平板加密手機後怎麼關閉 瀏覽:557
流媒體伺服器應該注意什麼 瀏覽:528
d8命令編譯 瀏覽:942
壓縮包解壓需要多少空間 瀏覽:139
如何查找app屬性 瀏覽:380
android人臉識別技術 瀏覽:305
pc104編程 瀏覽:328
二維碼反編譯破解推廣 瀏覽:674
修改伺服器的mac地址 瀏覽:520
好玩的編程軟體 瀏覽:891
編程語言創始人有錢嗎 瀏覽:797
短視頻app怎麼獲客 瀏覽:8
查看雲伺服器的應用 瀏覽:427
javadump工具 瀏覽:558
程序員16g 瀏覽:421
程序員沒有辦法成為top怎麼辦 瀏覽:196