第5-8章知识梳理
1.[BX]指令功能:bx中存放的數(shù)據(jù)作為一個偏移地址,段地址在ds中,經(jīng)常用[bx]表示內(nèi)存單元。
例如:mov ax,[bx]就表示為(ax)=((ds)*16+(bx)).
2.描述性符號():表示一個寄存器或內(nèi)存單元的地址。
例如:(ax)就表示ax中的內(nèi)容。
3.loop指令:循環(huán)指令。
?格式:loop 標(biāo)號
CPU執(zhí)行l(wèi)oop指令時的操作:(1)(cx)=(cx)-1.(cx中存放循環(huán)的次數(shù)).
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)判斷cx的值,不為零,則轉(zhuǎn)至標(biāo)號處執(zhí)行,如果為零則向下執(zhí)行。
4.在匯編源程序中,數(shù)據(jù)是不可以以字母開頭的。
5.g命令:跳轉(zhuǎn)指令。
? 用法:g 偏移地址。
6.p命令:循環(huán)跳轉(zhuǎn)指令。
? 用法:在遇到loop指令時,用p命令執(zhí)行,即可完成循環(huán)的過程。
7.dw:定義字?jǐn)?shù)據(jù)。
? ?db:定義字節(jié)數(shù)據(jù)。
? ?dd:定義雙字?jǐn)?shù)據(jù)。
8.匯編源程序中指明程序的入口:用一個標(biāo)號指明。如:start。
9.用多個段來存放數(shù)據(jù)、代碼和段:對于不同的段要有不同的段名。
10.一個段中的段地址可由段名代表。
例如:mov ax,data表示:將data這個段的段地址傳送給ax這個寄存器。
11.要明白在匯編源程序中對不同段的定義和劃分僅僅是我們認(rèn)為規(guī)定的,CPU是不認(rèn)同這種劃分的。
12.and指令:邏輯與運算。
13.or指令:邏輯或運算。
14.ASCII編碼:對傳送到計算機的信息的編碼。
15.在匯編程序中用'......'的方式指明數(shù)據(jù)是以字符的形式給出的,編譯器會將它們轉(zhuǎn)化為相應(yīng)的ASCII碼。
16.[bx+idata]:表示一個內(nèi)存單元,它的偏移地址是(bx)+idata。
17.SI和DI:8086CPU中和bx功能相近的寄存器,但是si和di不可以劃分成兩個8位寄存器來使用。
18.表示內(nèi)存單元的幾種方式:
[idata]
[bx]
[si]
[di]
[bx+idata]
[si+idata]
[di+idata]
[bx+si+idata]
[bx+di+idata]
19.寄存器(reg):ax,ah,al,bx.bh,bl,cx,ch,cl,dx,dh,dl,sp,bp,si,di
段寄存器:ss,cs,es,ds
20.表示內(nèi)存單元的尋址:bx,bp,si,di
bx與bp可以與si,di組合使用,其他不可以。
bp的段地址默認(rèn)在ss中。
21.在表示CPU處理數(shù)據(jù)的長度時有兩種方法:
(1)寄存器指明
(2)word ptr 和 byte ptr指明。
22.div除法指令:
(1)除數(shù)8位:放在一個內(nèi)存單元或者在一個寄存器里。
? ? ? ? ?被除數(shù):放在ax中。
? ? ? ? ? 商:放在al中
? ? ? ? ? 余數(shù):放在ah中。
(2)除數(shù)16位:放在一個內(nèi)存單元中或者在一個寄存器里。
? ? ? ? ?被除數(shù)32位:低16位在ax中,高16位在dx中。
? ? ? ? ? 商:ax中
? ? ? ? ?余數(shù):dx中
23.dup指令:用于數(shù)據(jù)的重復(fù)。
db(或dw或dd)? ? ?重復(fù)的次數(shù)? ? ? ? dup(重復(fù)的數(shù)據(jù))
?
轉(zhuǎn)載于:https://www.cnblogs.com/fxdtz/p/10093216.html
總結(jié)
- 上一篇: Java对象序列化为什么要使用Seria
- 下一篇: Object C学习笔记19-枚举(转)