成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

匯編語言輸出字符的方法 材料匯編目錄怎么弄?

答:資料匯編目錄的操作步驟如下。1.將光標放在前言頁的最后一個字符后,單擊插入-分隔符-下一頁-確定。2.在下一個生成的頁面上制作目錄,點擊插入-引用-索引和目錄-目錄-顯示級別設(shè)置為1-確定。3.刪

答:資料匯編目錄的操作步驟如下。1.將光標放在前言頁的最后一個字符后,單擊插入-分隔符-下一頁-確定。2.在下一個生成的頁面上制作目錄,點擊插入-引用-索引和目錄-目錄-顯示級別設(shè)置為1-確定。

3.刪除 "前言和生成的目錄中的行。4.更改頁碼(1)將光標放在前言頁,點擊插入-頁碼-格式-將數(shù)字格式改為羅馬數(shù)字(ⅰ,ⅱ,ⅲ)-確定。(2)將光標放在這一頁目錄中,點擊插入-頁碼-去掉首頁頁碼前的勾號-格式-將起始頁碼改為0-確定。(3)右鍵單擊目錄-更新字段-僅更新頁碼。

匯編語言中的標簽受某些規(guī)則的約束:

1.不能是程序集中的關(guān)鍵字,如DB、DW、

首先,dos必須支持中文顯示。

匯編語言通過調(diào)用控制臺輸出程序?qū)⒁粋€字符輸出到顯示區(qū)。比如要顯示字符A,就需要將字符A的ASCII碼傳送給顯示程序(這個顯示程序是BIOS系統(tǒng)中的一個顯示子程序,是一個軟中斷調(diào)用)。

普通的中文編碼是指兩個特殊的ASCII碼顯示一個漢字。得到要顯示的漢字的兩個ASCII碼后,可以連續(xù)調(diào)用顯示程序,將這兩個ASCII碼依次提交給顯示程序。

1.注冊

共有16個32位寄存器,即:

4個數(shù)據(jù)寄存器(EAX、EBX、ECX、EDX)。

2個索引和指針寄存器(ESI和EDI);2個指針寄存器(ESP和EBP)。

6個段寄存器(ES、CS、SS、DS、FS、GS)。

1指令指針寄存器(EIP);1個標志寄存器(EFlags)。

2.數(shù)據(jù)寄存器

數(shù)據(jù)寄存器主要用于存儲操作數(shù)和運算結(jié)果等信息,從而節(jié)省了讀取操作數(shù)時占用總線和訪問存儲器所需的時間。

一個32位CPU有四個32位通用寄存器:EAX、EBX、ECX和EDX。對低16位數(shù)據(jù)的訪問不會影響高16位。

這些低16位寄存器分別命名為AX、BX、CX和DX,與之前CPU中的寄存器一致。

四個16位寄存器可以分成八個獨立的8位寄存器(ax: ah ~ al,bx: BH ~ bl,CX: ch ~ cl: dx: dh~dl).

每個寄存器都有自己的名稱,可以獨立訪問。程序員可以使用這個 "可分離 "靈活處理字的數(shù)據(jù)寄存器特性/

字節(jié)的信息。

AX和al通常被稱為累加器,使用累加器的運算可能需要較少的時間。累加器可用于乘法、除法、輸入/輸出和其他運算。

它們經(jīng)常被使用。

BX被稱為基址寄存器,可以用作內(nèi)存指針。

CX被稱為計數(shù)寄存器,用于控制循環(huán)和字符串操作期間的周期數(shù)。在位操作中,移位多個位時,使用cl。

指示偏移量的位數(shù)。

DX稱為數(shù)據(jù)寄存器,可用于參與默認操作數(shù)的運算,并在乘法和除運算時存儲I/O的端口地址。

在16位CPU中,AX、BX、CX和DX can t用作基址和變址寄存器來存儲存儲單元的地址,但在32位CPU中。

它的32位寄存器EAX、EBX、ECX和EDX不僅能傳輸數(shù)據(jù)、暫存數(shù)據(jù)和保存算術(shù)和邏輯運算結(jié)果,而且

作為指針寄存器,這些32位寄存器用途更廣。

3.變址寄存器

32位CPU有兩個32位通用寄存器ESI和EDI,其低16位對應(yīng)于前一個CPU中的SI和DI,以及低16位數(shù)據(jù)

訪問不會影響高16位數(shù)據(jù)。

ESI、EDI、SI、DI稱為變址寄存器,主要用來存儲一個段中存儲單元的偏移量,它們可以用來實現(xiàn)各種存儲器。

操作數(shù)的尋址為訪問不同地址形式的存儲單元提供了方便。

索引寄存器不能劃分為8位寄存器。作為通用寄存器,它還可以存儲算術(shù)邏輯運算的操作數(shù)和運算結(jié)果。

它們可以作為通用的內(nèi)存指針,在字符串操作指令的執(zhí)行過程中對它們有特殊的要求,它們也有特殊的

功能。

4.指針式計量器

32位CPU有兩個32位通用寄存器EBP和ESP,其中低16位對應(yīng)于前一個CPU中的BP和SP,低16位。

根據(jù)訪問,不影響高16位數(shù)據(jù)。

EBP、ESP、BP、SP稱為指針寄存器,主要用來存儲堆棧中存儲單元的偏移量,它們可以用來實現(xiàn)各種存儲器。

操作數(shù)的尋址為訪問不同地址形式的存儲單元提供了方便。

指針寄存器不能劃分為8位寄存器。作為通用寄存器,它還可以存儲算術(shù)和邏輯運算的操作數(shù)和運算結(jié)果。

它們主要用于訪問堆棧中的存儲單元,并規(guī)定:

BP是基址指針寄存器,可以直接訪問堆棧中的數(shù)據(jù)。

SP是棧指針寄存器,只能訪問棧頂。

5.分段寄存器

根據(jù)存儲器分段的管理模式來設(shè)置分段寄存器。存儲單元的物理地址由段寄存器的值和偏移量組成。

,以便將兩個位數(shù)較少的值合并成一個可訪問的值。求更大物理空間的內(nèi)存地址。

32位CPU有六個段寄存器,如下所示:

CS:代碼段寄存器ES:附加段寄存器

DS:數(shù)據(jù)段寄存器FS:附加段寄存器

SS:堆棧段寄存器GS:附件段寄存器

在一個16位CPU系統(tǒng)中,只有4個段寄存器,所以程序在任何時候最多可以直接訪問4個正在使用的段。

在32位微機系統(tǒng)中,它有6個段寄存器,所以在這種環(huán)境下開發(fā)的程序最多可以同時訪問6個段。

32位CPU有兩種不同的工作模式:實模式和保護模式。在每種模式中,段寄存器的作用是不同的,相關(guān)的規(guī)定

簡要描述如下:

實模式:段寄存器CS、DS、ES和SS與前一CPU中相應(yīng)的段寄存器以及存儲單元的邏輯具有相同的含義

地址仍然是 "段地址:偏移地址 "。為了訪問某個內(nèi)存段中的數(shù)據(jù),必須使用段寄存器和存儲單元的偏移地址。

保護模式:在這種模式下,情況要復(fù)雜得多。裝入段寄存器的不再是段值,而是一個名為 "選擇器和。

6.指令指針寄存器

32位CPU將指令指針擴展到32位,并將其記錄為EIP。EIP的低16位與先前CPU中的IP具有相同的功能。

指令指針EIP和IP是代碼段中存儲下一次要執(zhí)行的指令的偏移地址。在具有預(yù)取指令功能的系統(tǒng)中,指令將在下一次執(zhí)行。

指令行通常被預(yù)取到指令隊列中,除非有分支,所以在理解它們的功能時不考慮指令隊列的存在。

條件。

在實模式下,因為每個段的最大范圍是64KB,所以EIP的高16位必須全部為0。此時,它相當于只使用它的低16位。

位IP來反映程序中指令的執(zhí)行順序。

7.標志寄存器

1.運算結(jié)果標志位。共6個,包括:CF進位標志、PF奇偶標志、AF輔助進位標志、ZF零標志、

溢出標志位的SF符號標志位。

2.狀態(tài)控制標志位。一共三個,包括:TF跟蹤標志,IF中斷許可標志,DF方向標志。

以上標志位在第七章都有提及,這里不再贅述?,F(xiàn)在,讓我們 讓我們來談?wù)?2位標志寄存器中添加的四個標志位。

1.輸入輸出特權(quán)標志IOPL。

IOPL由兩個二進制位表示,也稱為I/O特權(quán)級別字段,它指定執(zhí)行I/O指令所需的特權(quán)級別。如果當前

的特權(quán)級別小于或等于IOPL的值,則可以執(zhí)行I/O指令,否則將出現(xiàn)保護異常。

2.嵌套任務(wù)標志NT。

NT用于控制中斷返回指令I(lǐng)RET的執(zhí)行。具體規(guī)定如下:

(1)當NT0時,用保存在堆棧中的值恢復(fù)EFlags、CS和EIP,并執(zhí)行例行中斷返回操作。

(2)NT1時,通過任務(wù)轉(zhuǎn)換實現(xiàn)中斷返回。

3.重啟標志RF。

RF用于控制是否接受調(diào)試故障。規(guī)定:當RF0時,表示接受,否則拒絕。

4.虛擬8086模式徽標。

如果VM1,則表示處理器工作在虛擬8086模式,否則,處理器工作在通用保護模式。

8、32位地址尋址模式

最后說說32位地址的尋址。前面我們研究了16位地址的尋址,在32位微機系統(tǒng)中有五種。

本文提供了一種更加靈活、方便、復(fù)雜的存儲器尋址方法,進一步擴大了存儲器地址的尋址范圍。

當使用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位的偏移常數(shù)。

例如,指令:MOVEBX,[EAX EDX * 2 300]

Eax是基址寄存器,edx是索引寄存器,300H是偏移常數(shù)。

以上三個部分可以任意組合,可以省略其中的一兩個。

以下是一些32位地址尋址指令:

Mov ax,[123456]

Mov eax

Mov ebx,[ecx*2]

Mov [[EAX EDX * 8300]顯式段寄存器是GS。

Mov ax,[esp]默認段寄存器是SS。