答:資料匯編目錄的操作步驟如下。1.將光標放在前言頁的最后一個字符后,單擊插入-分隔符-下一頁-確定。2.在下一個生成的頁面上制作目錄,點擊插入-引用-索引和目錄-目錄-顯示級別設置為1-確定。
3.刪除"前言和生成的目錄中的行。4.更改頁碼(1)將光標放在前言頁,點擊插入-頁碼-格式-將數字格式改為羅馬數字(ⅰ,ⅱ,ⅲ)-確定。(2)將光標放在這一頁目錄中,點擊插入-頁碼-去掉首頁頁碼前的勾號-格式-將起始頁碼改為0-確定。(3)右鍵單擊目錄-更新字段-僅更新頁碼。
匯編語言中的標簽受某些規則的約束:
1.不能是程序集中的關鍵字,如DB、DW、
首先,dos必須支持中文顯示。
匯編語言通過調用控制臺輸出程序將一個字符輸出到顯示區。比如要顯示字符A,就需要將字符A的ASCII碼傳送給顯示程序(這個顯示程序是BIOS系統中的一個顯示子程序,是一個軟中斷調用)。
普通的中文編碼是指兩個特殊的ASCII碼顯示一個漢字。得到要顯示的漢字的兩個ASCII碼后,可以連續調用顯示程序,將這兩個ASCII碼依次提交給顯示程序。
1.注冊
共有16個32位寄存器,即:
4個數據寄存器(EAX、EBX、ECX、EDX)。
2個索引和指針寄存器(ESI和EDI);2個指針寄存器(ESP和EBP)。
6個段寄存器(ES、CS、SS、DS、FS、GS)。
1指令指針寄存器(EIP);1個標志寄存器(EFlags)。
2.數據寄存器
數據寄存器主要用于存儲操作數和運算結果等信息,從而節省了讀取操作數時占用總線和訪問存儲器所需的時間。
一個32位CPU有四個32位通用寄存器:EAX、EBX、ECX和EDX。對低16位數據的訪問不會影響高16位。
這些低16位寄存器分別命名為AX、BX、CX和DX,與之前CPU中的寄存器一致。
四個16位寄存器可以分成八個獨立的8位寄存器(ax:ah~al,bx:BH~bl,CX:ch~cl:dx:dh~dl).
每個寄存器都有自己的名稱,可以獨立訪問。程序員可以使用這個"可分離"靈活處理字的數據寄存器特性/
字節的信息。
AX和al通常被稱為累加器,使用累加器的運算可能需要較少的時間。累加器可用于乘法、除法、輸入/輸出和其他運算。
它們經常被使用。
BX被稱為基址寄存器,可以用作內存指針。
CX被稱為計數寄存器,用于控制循環和字符串操作期間的周期數。在位操作中,移位多個位時,使用cl。
指示偏移量的位數。
DX稱為數據寄存器,可用于參與默認操作數的運算,并在乘法和除運算時存儲I/O的端口地址。
在16位CPU中,AX、BX、CX和DXcant用作基址和變址寄存器來存儲存儲單元的地址,但在32位CPU中。
它的32位寄存器EAX、EBX、ECX和EDX不僅能傳輸數據、暫存數據和保存算術和邏輯運算結果,而且
作為指針寄存器,這些32位寄存器用途更廣。
3.變址寄存器
32位CPU有兩個32位通用寄存器ESI和EDI,其低16位對應于前一個CPU中的SI和DI,以及低16位數據
訪問不會影響高16位數據。
ESI、EDI、SI、DI稱為變址寄存器,主要用來存儲一個段中存儲單元的偏移量,它們可以用來實現各種存儲器。
操作數的尋址為訪問不同地址形式的存儲單元提供了方便。
索引寄存器不能劃分為8位寄存器。作為通用寄存器,它還可以存儲算術邏輯運算的操作數和運算結果。
它們可以作為通用的內存指針,在字符串操作指令的執行過程中對它們有特殊的要求,它們也有特殊的
功能。
4.指針式計量器
32位CPU有兩個32位通用寄存器EBP和ESP,其中低16位對應于前一個CPU中的BP和SP,低16位。
根據訪問,不影響高16位數據。
EBP、ESP、BP、SP稱為指針寄存器,主要用來存儲堆棧中存儲單元的偏移量,它們可以用來實現各種存儲器。
操作數的尋址為訪問不同地址形式的存儲單元提供了方便。
指針寄存器不能劃分為8位寄存器。作為通用寄存器,它還可以存儲算術和邏輯運算的操作數和運算結果。
它們主要用于訪問堆棧中的存儲單元,并規定:
BP是基址指針寄存器,可以直接訪問堆棧中的數據。
SP是棧指針寄存器,只能訪問棧頂。
5.分段寄存器
根據存儲器分段的管理模式來設置分段寄存器。存儲單元的物理地址由段寄存器的值和偏移量組成。
,以便將兩個位數較少的值合并成一個可訪問的值。求更大物理空間的內存地址。
32位CPU有六個段寄存器,如下所示:
CS:代碼段寄存器ES:附加段寄存器
DS:數據段寄存器FS:附加段寄存器
SS:堆棧段寄存器GS:附件段寄存器
在一個16位CPU系統中,只有4個段寄存器,所以程序在任何時候最多可以直接訪問4個正在使用的段。
在32位微機系統中,它有6個段寄存器,所以在這種環境下開發的程序最多可以同時訪問6個段。
32位CPU有兩種不同的工作模式:實模式和保護模式。在每種模式中,段寄存器的作用是不同的,相關的規定
簡要描述如下:
實模式:段寄存器CS、DS、ES和SS與前一CPU中相應的段寄存器以及存儲單元的邏輯具有相同的含義
地址仍然是"段地址:偏移地址"。為了訪問某個內存段中的數據,必須使用段寄存器和存儲單元的偏移地址。
保護模式:在這種模式下,情況要復雜得多。裝入段寄存器的不再是段值,而是一個名為"選擇器和。
6.指令指針寄存器
32位CPU將指令指針擴展到32位,并將其記錄為EIP。EIP的低16位與先前CPU中的IP具有相同的功能。
指令指針EIP和IP是代碼段中存儲下一次要執行的指令的偏移地址。在具有預取指令功能的系統中,指令將在下一次執行。
指令行通常被預取到指令隊列中,除非有分支,所以在理解它們的功能時不考慮指令隊列的存在。
條件。
在實模式下,因為每個段的最大范圍是64KB,所以EIP的高16位必須全部為0。此時,它相當于只使用它的低16位。
位IP來反映程序中指令的執行順序。
7.標志寄存器
1.運算結果標志位。共6個,包括:CF進位標志、PF奇偶標志、AF輔助進位標志、ZF零標志、
溢出標志位的SF符號標志位。
2.狀態控制標志位。一共三個,包括:TF跟蹤標志,IF中斷許可標志,DF方向標志。
以上標志位在第七章都有提及,這里不再贅述。現在,讓我們讓我們來談談32位標志寄存器中添加的四個標志位。
1.輸入輸出特權標志IOPL。
IOPL由兩個二進制位表示,也稱為I/O特權級別字段,它指定執行I/O指令所需的特權級別。如果當前
的特權級別小于或等于IOPL的值,則可以執行I/O指令,否則將出現保護異常。
2.嵌套任務標志NT。
NT用于控制中斷返回指令IRET的執行。具體規定如下:
(1)當NT0時,用保存在堆棧中的值恢復EFlags、CS和EIP,并執行例行中斷返回操作。
(2)NT1時,通過任務轉換實現中斷返回。
3.重啟標志RF。
RF用于控制是否接受調試故障。規定:當RF0時,表示接受,否則拒絕。
4.虛擬8086模式徽標。
如果VM1,則表示處理器工作在虛擬8086模式,否則,處理器工作在通用保護模式。
8、32位地址尋址模式
最后說說32位地址的尋址。前面我們研究了16位地址的尋址,在32位微機系統中有五種。
本文提供了一種更加靈活、方便、復雜的存儲器尋址方法,進一步擴大了存儲器地址的尋址范圍。
當使用16位寄存器訪問存儲單元時,只有基址寄存器(BX和BP)和變址寄存器(SI和DI)可以用作。
偏移地址的一部分,但用32位寄存器尋址時,就沒有這種限制了。所有32位寄存器(EAX、EBX、ECX、
EDX、ESI、EDI、EBP和ESP)都可以是偏移地址的組成部分。
使用32位地址偏移尋址時,偏移地址可分為三部分:
1.32位基址寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP)。
2.一個32位索引寄存器(EAX、EBX、ECX、EDX、ESI、EDI和EBP),可以乘以1、2、4和8。
3.一個8位至32位的偏移常數。
例如,指令:MOVEBX,[EAXEDX*2300]
Eax是基址寄存器,edx是索引寄存器,300H是偏移常數。
以上三個部分可以任意組合,可以省略其中的一兩個。
以下是一些32位地址尋址指令:
Movax,[123456]
Moveax
Movebx,[ecx*2]
Mov[[EAXEDX*8300]顯式段寄存器是GS。
Movax,[esp]默認段寄存器是SS。