版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
教學(xué)重點(diǎn)
第1章是用匯編語言進(jìn)行程序設(shè)
計(jì)所需要了解的基本知識。在課
堂上,我們重點(diǎn)掌握幾個(gè)內(nèi)容:
/PC機(jī)軟硬件系統(tǒng)
/認(rèn)識匯編語言
,基礎(chǔ)是熟悉寄存器組
,難點(diǎn)是各種尋址方式
non
第1工.?1.1計(jì)算機(jī)系統(tǒng)概述
硬件(Hardware)
■中央處理單元CPU
■控制器、運(yùn)算器、寄存器
■存儲(chǔ)器
■主存儲(chǔ)器:RAM和ROM
■輔助存儲(chǔ)器:磁盤、光盤、U盤
■外部設(shè)備
■輸入設(shè)備和輸出設(shè)備
A軟件(Software)
■系統(tǒng)軟件
■應(yīng)用軟件
第1章微型計(jì)算機(jī)的系統(tǒng)組成
系統(tǒng)總線
CPU
運(yùn)算器…;
控制需;
■
‘寄存器:
第1章匯編語言程序員看到的硬件
手■J
■?中央處理單元CPU(Intel80x86)
對匯編語言程序員,最關(guān)心其中的寄存器
A存儲(chǔ)器(主存儲(chǔ)器)
呈現(xiàn)給匯編語言程序員的,是存儲(chǔ)器地址
A外部設(shè)備(接口電路)
匯編語言程序員看到的是端口(I/O地址)
第1匕■■寄存器(Register)
??寄存器是CPU內(nèi)部的高速存儲(chǔ)單元
>它們?yōu)樘幚砥魈峁└鞣N操作所需要的數(shù)據(jù)或
地址等信息
>匯編語言程序采用它們各自的符號名
■16位Intel8086/80286CPU中有
AXBXCXDX
SIDIBPSP
■32位80386/80486/Pentium系歹UCPU中有
EAXEBXECXEDX
ESIEDIEBPESP
第1匕.?存儲(chǔ)器地址(Address)
?存儲(chǔ)器是由大量存儲(chǔ)單元組成,需要用編號
區(qū)別每個(gè)單元:編號=地址
>存儲(chǔ)器地址是存儲(chǔ)器中存儲(chǔ)單元的編號
>每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)量的數(shù)據(jù)
■一個(gè)字節(jié)B(Byte)=8個(gè)二進(jìn)制位b(bit)
>采用十六進(jìn)制數(shù)來表達(dá)地址
■Intel8086具有1兆字節(jié)(1MB)存儲(chǔ)器容量
■存儲(chǔ)器地址表示為:00000H?FFFFFH
■其中大寫H(或小寫h)表示是十六進(jìn)制數(shù)
第1工■■端口(Port)
l?l/o接口電路由接口寄存器組成,需要用編
號區(qū)別各個(gè)寄存器:編號=地址
>I/O地址是接口電路中寄存器的編號
A端口是I/O地址的通俗說法
>系統(tǒng)通過這些端口與外設(shè)進(jìn)行通信
A采用十六進(jìn)制數(shù)來表達(dá)端口
■Intel8086支持64K個(gè)8位端口
■I/O地址可以表示為:0000H?FFFFH
第1章計(jì)算機(jī)的程序設(shè)計(jì)語言
手■J
■?機(jī)器語言(MachineLanguage)
B86400050001
A匯編語言(AssemblyLanguage)
movaxJOO
;取得一個(gè)數(shù)據(jù)100(MOV是傳送指令)
addax,256
;實(shí)現(xiàn)100+256(ADD是加法指令)
A高級語言(High-levelLanguage)
100+256
E第I"以上匕:符形式表什示么計(jì)是匯算編機(jī)語指言令‘
■助記符(mnemonic)是便于人們記憶、并能
描述指令功能和指令操作數(shù)的符號
■助記符是表明指令功能的英語單詞或其縮寫
A匯編格式指令以及使用它們編寫程序的規(guī)則
就形成匯編語言(AssemblyLanguage)
A匯編語言程序:用匯編語言書寫的程序
A匯編程序:將匯編語言程序“匯編”成機(jī)器
代碼目標(biāo)模塊的程序
行匯編語言程序與匯編程序是兩個(gè)概念
第匯編語言和高級語言的比較-1
A匯編語言與處理器密切相關(guān)
X匯編語言程序的通用性、可移植性較差
>高級語言與具體計(jì)算機(jī)無關(guān)
/高級語言程序是標(biāo)準(zhǔn)化語言,可在多種
計(jì)算機(jī)上編譯后執(zhí)行
匯編語言:XIWJ級語言:N
士??匯編語言和高級語言的比較-2
A匯編語言功能有限、涉及硬件細(xì)節(jié)
\程序編寫比較繁瑣,調(diào)試比較困難
?高級語言提供了強(qiáng)大的功能,不必
關(guān)心瑣碎問題
/類似自然語言的語法,易于掌握和應(yīng)
用
匯編語言:XIWJ級語言:7
第1工上匯編語言和高級語言的比較-3
■7匯編語言本質(zhì)上就是機(jī)器語言
/可以直接、有效地控制計(jì)算機(jī)硬件
/易于產(chǎn)生速度快、容量小的高效率目標(biāo)
程序
>高級語言不針對具體計(jì)算機(jī)系統(tǒng)
\不易直接控制計(jì)算機(jī)的各種操作
'目標(biāo)程序比較龐大、運(yùn)行速度較慢
匯編語言:N高級語言:x
第1匕.?匯編語言的特點(diǎn)
■7匯編語言的優(yōu)點(diǎn):
■直接控制計(jì)算機(jī)硬件部件
■編寫“時(shí)間”和“空間”兩方面最有效程
A匯編語言的缺點(diǎn):
■與處理器密切有關(guān)
■需要熟悉計(jì)算機(jī)硬件系統(tǒng)、考慮許多細(xì)節(jié)
■編寫繁瑣調(diào)試、維擰、交流和移植困難
匯編語言:?高級語言:?
乙戛小匯編語言和高級語言的混合編程
r匯曝語言的優(yōu)點(diǎn)使得它在程贏計(jì)中占有重
要的位置,不可被取代
?匯編語言的缺點(diǎn)使得人們主要采用高級語言
進(jìn)行程序開發(fā)工作
?有時(shí)需要采用高級語言和匯編語言混合編程,
互相取長補(bǔ)短,更好地解決實(shí)際問題
混合編程取長補(bǔ)短
第1匕上匯編語言的應(yīng)用場合
程序要具有較快的執(zhí)行時(shí)間,或者只能占用
較小的存儲(chǔ)容量
?程序與計(jì)算機(jī)硬件密切相關(guān),程序要直接、
有效地控制硬件
A*9匯編語言的作用實(shí)在不?。。?/p>
A城有合適的高級語言、或只能米用匯編語言
的時(shí)候
?分析具體系統(tǒng)尤其是該系統(tǒng)的低層軟件、加
密解密軟件、分析和防治計(jì)算機(jī)病毒等等
第1匕.?1.2數(shù)據(jù)表示
跳過
>1.2.1數(shù)缶I]
■二進(jìn)制數(shù)、十六進(jìn)制數(shù)
■它們與十進(jìn)制數(shù)的相互轉(zhuǎn)換
>1.2.2編碼
■BCD碼和ASCH碼的規(guī)律
>1.2.3有符號數(shù)的表示法
■有符號整數(shù)的補(bǔ)碼表示
>1.2.4二進(jìn)制運(yùn)算
■二進(jìn)制的算術(shù)運(yùn)算和邏輯運(yùn)算
■十進(jìn)制的加減運(yùn)算
第1章二進(jìn)制數(shù)
>便于計(jì)算機(jī)存儲(chǔ)及物理實(shí)現(xiàn)
?特點(diǎn):逢二進(jìn)一,由0和1兩個(gè)數(shù)碼組成,基
數(shù)為2,各個(gè)位權(quán)以2k表示
A二進(jìn)制數(shù):
???a1a0?b2???bm
n
anX2+an_1X2n」+…+a[X21+a()X2°
12m
+b1X2-+b2X2-+...+bmX2'
其中如與非0即1
第十六進(jìn)制數(shù)
—h—
用于表達(dá)二進(jìn)制數(shù),相互轉(zhuǎn)換簡單
A基數(shù)16,逢16進(jìn)位,位權(quán)為16與16個(gè)數(shù)碼:
0,1,2,3,4,5,6,7,8,9
A,B,C,D,E,F
?十六進(jìn)制數(shù):
?n?n-1■■。2,?,bm—
anXl6n+an.iXl6ni+.??+aiXl6i+a0xi60
+b1Xl6-i+b2X16-2+.BB+bmXl6-m
其中5,bj是。?F中的一個(gè)數(shù)碼
新匕■■十進(jìn)制整數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)
演示
整數(shù)部分轉(zhuǎn)換:用除法
■十進(jìn)制數(shù)整數(shù)部分不斷除以基數(shù)2或16,并記下
余數(shù),直到商為0為止
■由最后一個(gè)余數(shù)起逆向取各個(gè)余數(shù),則為轉(zhuǎn)換
成的二進(jìn)制和十六進(jìn)制數(shù)
126=01111110B
126=7EH
第十進(jìn)制小數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)
K小數(shù)部分轉(zhuǎn)換:用乘法演示
■分別乘以各自的基數(shù),記錄整數(shù)部分,直到小
數(shù)部分為o為止
0.8125=0.1101
0.8125=0.DH
>小數(shù)轉(zhuǎn)換會(huì)發(fā)生總是無法乘到為0的情況
■可選取一定位數(shù)(精度)
■將產(chǎn)生無法避免的轉(zhuǎn)換誤差
第I工十二或十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
方法:按權(quán)展開
?二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
0011.1010B二進(jìn)制數(shù)用后綴字母B
=1X21+1X2°+1X2-1+0X2-2+1X2-3
=3.625
>十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
1.2H|十六進(jìn)制綴字母H
=1X16°+2X16-1
=1.125
BCD石馬(BinaryCodedDecimal)
?二進(jìn)制編碼的十進(jìn)制數(shù)
■一個(gè)十進(jìn)制數(shù)位。?9用4位二進(jìn)制編碼來表示
■常用8421BCD碼:低10個(gè)4位二進(jìn)制編碼表示
■壓縮BCD碼:一個(gè)字節(jié)表達(dá)兩位BCD碼
■非壓縮BCD碼:一個(gè)字節(jié)表達(dá)一位BCD碼(低
4位表達(dá)數(shù)值,高4位常設(shè)置為0)
ABCD碼彳艮直觀
BCD碼:0100100101111000.000101001001
十進(jìn)制真值:4978.149
CD碼便于輸入輸出,表達(dá)數(shù)值準(zhǔn)確
第1章ASCII碼(美國標(biāo)準(zhǔn)信息交換碼)
上二進(jìn)制編碼,有儂個(gè)
A不可顯示的控制字符
前32個(gè)和最后一個(gè)編碼
回車CR:ODH換行LF:OAH響鈴BEL:07H
A可顯示和打印的字符:20H后的94個(gè)編碼
■數(shù)碼0?9:30H?39H
■大寫字母A?乙41H?5AH
■小寫字母a?z:61H?7AH
■空格:20H
A擴(kuò)展ASCH碼:最高D7位為1,表達(dá)制表符
第1章真值和機(jī)器數(shù)
?真值:現(xiàn)實(shí)中真實(shí)的數(shù)值
A機(jī)器數(shù):計(jì)算機(jī)中用0和1數(shù)碼組合表達(dá)的數(shù)值
?無符號數(shù):只表達(dá)0和正整數(shù)的定點(diǎn)整數(shù)
A有符號數(shù):表達(dá)負(fù)整數(shù)、0和正整數(shù)的定點(diǎn)整數(shù)
■符號位需要占用一個(gè)位
■常用機(jī)器數(shù)的最高位
■0表示正數(shù)、1表示負(fù)數(shù)
?定點(diǎn)數(shù):固定小數(shù)點(diǎn)的位置表達(dá)數(shù)值的機(jī)器數(shù)
■定點(diǎn)整數(shù):將小數(shù)點(diǎn)固定在機(jī)器數(shù)的最右側(cè)表達(dá)的整數(shù)
■定點(diǎn)小數(shù):將小數(shù)點(diǎn)固定在機(jī)器數(shù)的最左側(cè)表達(dá)的小數(shù)
A浮點(diǎn)數(shù):小數(shù)點(diǎn)浮動(dòng)表達(dá)的實(shí)數(shù)
第1章」A補(bǔ)碼
演示
>有符號整數(shù)在計(jì)算機(jī)中默認(rèn)采用補(bǔ)碼
■最高位表示符號:正數(shù)用0,負(fù)數(shù)用1
■正數(shù)補(bǔ)碼:直接表示數(shù)值大?。ㄍ瑹o符號數(shù))
■負(fù)數(shù)補(bǔ)碼:將對應(yīng)正數(shù)補(bǔ)碼取反加1
[105]補(bǔ)碼=01101001B
為什么是補(bǔ)碼:
[」05]補(bǔ)碼=[01101001B]取反+1/.....????...X\
£1\/\
7
=10010110B+1=10010111\/
A8位二進(jìn)制補(bǔ)碼表示的數(shù)值范圍:?128?+127
A16位二進(jìn)制補(bǔ)碼表示的數(shù)值范圍:?215?+2但1
A32位二進(jìn)制補(bǔ)碼表示的數(shù)值范圍:?231?+231-1
上??負(fù)數(shù)求補(bǔ)演示
W'=
?A負(fù)數(shù)真值“取反加1”得機(jī)器數(shù)補(bǔ)碼
A負(fù)數(shù)補(bǔ)碼“取反加1”得到負(fù)數(shù)真值
補(bǔ)碼:11100000B
真值:-([11100000]求反+1)=-(00011111+1)
=-00100000=-25=-32
A負(fù)數(shù)求補(bǔ)運(yùn)算,等效于用帶借位的0作減法
真值:?8,補(bǔ)碼:卜8]補(bǔ)碼=00H?08H=F8H
補(bǔ)碼:11111000,真值:-(00H-F8H)=-08H=-8
用十六進(jìn)制表達(dá)和運(yùn)算,方便!
第1十六進(jìn)制數(shù)的加減運(yùn)算
P二::和十六;;數(shù)之間具有對應(yīng)關(guān)系
■整數(shù)從左向右
■小數(shù)從右向左
■每4個(gè)二進(jìn)制位對應(yīng)一個(gè)十六進(jìn)制位
00111010B=3AH,F2H=11110010B
>十六進(jìn)制數(shù)的加減運(yùn)算類似十進(jìn)制
■逢16進(jìn)位1,借1當(dāng)16
23D9H+94BEH=B897H
A59FH-62H=42E7H
第1匕.?1.3Intel80x86系列微處理器
4004
第i匕一8086
A16位結(jié)構(gòu)的微處理器:數(shù)據(jù)總線為16位
A主存容量1MB:地址總線為20位
>時(shí)鐘頻率5MHz(IBMPC使用4.77MHz)
A準(zhǔn)16位微處理器8088:外部數(shù)據(jù)總線為8位
>IBMPC和PC/XT機(jī)使用Intel8088CPU
>8086的16位指令系統(tǒng):Intel80x86基本指令集
>80186/80188的核心是8086/8088,配以支持電路
A80186/80188指令系統(tǒng)比8086指令系統(tǒng)新增了若
干條實(shí)用的指令
■涉及堆棧操作、移位指令、輸入輸出指令、過程指令和
邊界檢測及乘法指令
第1匕.?80286
■?16位數(shù)據(jù)總線,24位地址總線(16MB主存)
A實(shí)方式(RealMode)
■與8086工作方式一樣
?保護(hù)方式(ProtectedMode)
■存儲(chǔ)管理、保護(hù)機(jī)制和多任務(wù)管理的硬件支持
>IBMPC/AT機(jī)使用Intel80286CPU
>80286指令系統(tǒng)新增15條保護(hù)方式指令
16位Intel80x86CPU:8086/80186/80286
32位Intel80x86CPU(IA-32微處理器):
80386,80486,Pentium系列
英特爾32位結(jié)構(gòu):IA?32(IntelArchitecture-32)
第1章80386
>32位結(jié)構(gòu)
■數(shù)據(jù)總線32位,地址總線32位,尋址4GB主存
A虛擬8086方式(Virtual8086Mode)
■保護(hù)方式下的8086工作方式
>系統(tǒng)管理方式(SystemManagementMode)
■低功耗節(jié)能狀態(tài)
>80386指令系統(tǒng)全面升級為32位
■兼容原來16位指令系統(tǒng)
■新增有關(guān)位操作、條件設(shè)置指令以及對控制、
調(diào)試和測試寄存器的傳送指令等
第80486
>80486=80386+80387+8KBCache
>浮點(diǎn)處理單元FPU
■8086/8088:8087
■80286:80287
■80386:80387
>高速緩沖存儲(chǔ)器Cache
>復(fù)雜指令集計(jì)算機(jī)CISC融合精簡指令集計(jì)算機(jī)
RISC的技術(shù)特點(diǎn)
>80486指令系統(tǒng)新增用于多處理器和內(nèi)部Cache操
作的6條指令
第1章Pentium
亡俗工的80586微處理器,奔騰微處理器
A32位結(jié)構(gòu),連接主存的數(shù)據(jù)總線是64位
?超標(biāo)量(Superscalar)技術(shù)
>Pentium指令系統(tǒng)新增
■一條8字節(jié)比較交換指令
■一條處理器識別指令
■4條系統(tǒng)專用指令
PentiumPro
A原稱P6,中文名稱為“高能奔騰”
A兩個(gè)芯片組成
A擴(kuò)展的超標(biāo)量技術(shù)
A動(dòng)態(tài)執(zhí)行技術(shù)
>PentiumPro新增3條指令
p"■PentiumII
?A多媒體擴(kuò)展指令(MMX指令)
■MMX(MutliMediaextension)
■整數(shù)運(yùn)算多媒體指令
■優(yōu)化圖像、音頻、視頻和通信方面的程序進(jìn)行
■提升微機(jī)對多媒體的處理能力
>PentiumMMX(多能奔騰):MMX指令應(yīng)
用于Pentium處理器
>PentiumII:MMX指令應(yīng)用于PentiumPro
■PentiumIII
士數(shù):流SIMD擴(kuò)展指令(SSE指令)
■SSE(StreamingSIMDExtensions)pentlum#-
■浮點(diǎn)單精度多媒體運(yùn)算指令
■提高浮點(diǎn)3D數(shù)據(jù)的處理能力。
■SSE指令類似于AMD公司發(fā)布的3DNow!指令
>PentiumIII:SSE指令應(yīng)用于PentiumII
A單指令多數(shù)據(jù)SIMD
■SingleInstructionMultipleData
■表示一條指令具有同時(shí)處理多組數(shù)據(jù)的能力
第1章Pentium4
>NetBurst的微結(jié)構(gòu)(Microarchitecture)
■進(jìn)一步發(fā)掘指令之間可以同時(shí)執(zhí)行的能力
A超線程HT(HyperThreading)
■發(fā)掘程序中的并行性
■一個(gè)物理處理器形成兩個(gè)邏輯處理器
ASSE2指令
■增強(qiáng)浮點(diǎn)雙精度多媒體運(yùn)算能力
ASSE3指令
■增強(qiáng)和完善MMX,SSE和SSE2指令
第i匕AIntel80x86微處理器
>Celeron(賽揚(yáng))微處理器
■面向低端(低價(jià)位)PC機(jī)
>Xeon(至強(qiáng))微處理器
■面向高端服務(wù)器、工作站
>AMD微處理器
■AMD公司生產(chǎn)的IA-32微處理器兼容芯片
■Intel公司最主要的競爭對手
>雙核微處理器
■單芯片多處理器SMP技術(shù)
■Intel的PentiumD:單芯片雙Pentium4核心
>64位微處理器
■AMD的K8核心:兼容IA?32的64位微處理器
■Intel的EM64T(擴(kuò)展64位技術(shù)):IA?32的64位擴(kuò)展
,第?匕本匕上:采用16位1.或43P2C位微個(gè)型人計(jì)計(jì)算算機(jī)機(jī)
A16位PC機(jī)
■8088CPU的IBMPC和IBMPC/XT
■80286CPU的IBMPC/AT
■16位80x86CPU的PC兼容機(jī)
A32位PC機(jī)
■采用32位80x86CPU而形成的微機(jī)
■基本結(jié)構(gòu)仍然源于PC/AT機(jī)
>人們?nèi)粘U務(wù)摰腜C機(jī)或微機(jī)是上述微型計(jì)
算機(jī)系統(tǒng)的統(tǒng)稱
主存空間的分配
▲
FFFFFFFFH復(fù)制ROMH
^擴(kuò)
1
?展
主
存
3
2
()位
00100000HHMA64KB
-UP
系統(tǒng)ROMMC
000E0000H128KBA機(jī)
P主
擴(kuò)展ROM>GC
8存
4/
128KBX(
000C0000HKT4
B喜G
顯示RAM)B
)
128KB「
000A0000H(
I
常)
系統(tǒng)RAM>規(guī)
1主
640KB存
00000000H
第1匕.?PC機(jī)最低1MB主存
口「1
IA系統(tǒng)RAM區(qū)
■地址最低端的640KB空間
■由DOS進(jìn)行管理
>顯示RAM區(qū)
■128KB主存空間保留給顯示緩沖存儲(chǔ)區(qū)
■顯示RAM區(qū)并沒有被完全使用
A擴(kuò)展ROM區(qū)
■I/O接口電路卡上的ROM
A系統(tǒng)ROM區(qū)
■ROM-BIOS程序
口第1匕h.?微機(jī)的軟件
I》系統(tǒng)軟件:DOS平臺(tái)
■MS-DOS6.22實(shí)地址方式
■Windows的MS-DOS模擬環(huán)境
?應(yīng)用軟件:開發(fā)匯編語言程序涉及
■文本編輯器
■匯編程序
■連接程序[?本教材提供一
■調(diào)試程序;DOS?MASM615.EXE
■集成化開發(fā)環(huán)境
第?工上文本編輯器(Editor)
■政文本編輯器用于編輯無任何格式的文檔
>程序設(shè)計(jì)要采用文本編輯器編寫源程序
A常見的文本編輯軟件有很多,如
■MS-DOS的EDIT全屏幕編輯器
■Windows的Notepad計(jì)事本
■程序開發(fā)系統(tǒng)中的程序編輯器
■TurboC
■VisualStudio
■MASM的PWB
比立■■匯編程序(Assembler)
?匯編程序?qū)R編語言源程序翻譯(稱為“匯
編”)成機(jī)器代碼目標(biāo)模塊
A本課程采用微軟的MASM6.15
■MASM的最后一個(gè)獨(dú)立版本MASM6,11
■可免費(fèi)升級為MASM6.14(支持SSE)
■VisualC++中有MASM6.15(支持SSE2)
■VisualC++.NET2003有MASM7.10
■VisualC++-NET2005的MASM支持Penium4
的SSE3指令系統(tǒng),同時(shí)有ML64EXE程序用于
支持64位指令系統(tǒng)
第1工.?連接程序(Linker)
勻I■」
■口連接程序?qū)R編后的目標(biāo)模塊轉(zhuǎn)換為可執(zhí)行
程序
>每個(gè)程序開發(fā)環(huán)境都有連接程序
?連接程序的文件名通常是:LINK.EXE
A32位Windows連接程序不同于16位DOS連
接程序
源程序—目標(biāo)模塊可執(zhí)行文件
.???.::
??????
文本編輯器匯編程序連接程序調(diào)試程序
調(diào)試程序(Debugger)
金調(diào)W程序進(jìn)行程序排錯(cuò)、分析等
>本課程采用MASM的CodeView
ADOS的DEBUG程序
A還有TurboDebugger等
潺程序丁目標(biāo)模塊k可執(zhí)行京牛
文本編輯器匯編程序連接程序調(diào)試程序
第I匕上集成化開發(fā)環(huán)境
??進(jìn)行程序設(shè)計(jì)使用的各種軟件的有機(jī)集合,
有文本編輯器,有語言翻譯程序,有連接程
序,還組合有調(diào)試程序等
>大型的程序設(shè)計(jì)項(xiàng)目往往要借助這種集成開
發(fā)環(huán)境,也就是軟件開發(fā)工具(包)
AMASM提供程序員工作平臺(tái)PWB
?微軟的VisualStudio開發(fā)系統(tǒng)
第i"■MASM編程環(huán)境的使用
口「1
■l.進(jìn)入模擬DOS環(huán)境
2.將MASM目錄作為當(dāng)前目錄
3.開發(fā)匯編語言程序
mlZFIfilename.asm
4.運(yùn)行可執(zhí)行程序
5.調(diào)試可執(zhí)行程序
與定制進(jìn)入MASM快捷方式ML615、
V創(chuàng)建快速開發(fā)文件MLLBAT
第1匕A1,58086微處理器
?微處理器是微機(jī)的硬件核心,主要包含指令
執(zhí)行的運(yùn)算和控制部件,還有多種寄存器
?對程序員來說,微處理器抽象為以名稱存取
的寄存器
A8086內(nèi)部結(jié)構(gòu)有兩個(gè)功能模塊,完成一條
指令的取指和執(zhí)行功能
?:?總線接口單元BIU:負(fù)責(zé)讀取指令和操作數(shù)
?:?執(zhí)行單元EU:負(fù)責(zé)指令譯碼和執(zhí)行
8086的內(nèi)部結(jié)構(gòu)
通用寄存器
輸入/輸出一
控制電路
外
部
總
16位線
執(zhí)行部分
控制電路123456
指令隊(duì)列緩沖器
標(biāo)志寄存器
執(zhí)行
執(zhí)行部件(EU)總線接口部件(BIU)
8086的寄存器組
r數(shù)懶存器
通用寄存器
變址寄存器
15
指針寄存器
CS代眄段寄存器
麟段寄存器
SS段寄存器
DS轆段寄存器
ES附加段寄存器
第1章8086的通用寄存器
A8086的16位通用寄存器是:
AXXCXDX
SIDIPSP
?其中前4個(gè)數(shù)據(jù)寄存器都還可以分成高8位和
低8位兩個(gè)獨(dú)立的寄存器
A8086的8位通用寄存器是:
AHHCHDH
ALLCLDL
?對其中某8位的操作,并不影響另外對應(yīng)8位
的數(shù)據(jù)
第I匕1數(shù)據(jù)寄存器
尹「
數(shù)據(jù)寄存器用來存放計(jì)算的結(jié)果和操作數(shù),
也可以存放地址
>每個(gè)寄存器又有它們各自的專用目的
■AX——累加器,使用頻度最高,用于算術(shù)、邏
輯運(yùn)算以及與外設(shè)傳送信息等;
■BX——基址寄存器,常用做存放存儲(chǔ)器地址;
■CX——計(jì)數(shù)器,作為循環(huán)和串操作等指令中的
隱含計(jì)數(shù)器;
■DX——數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的
高16位,或存放外設(shè)端口地址。
第■變址及指針寄存器
|>變址寄存器常用于存儲(chǔ)器尋址時(shí)提供地址
■SI是源變址寄存器
■DI是目的變址寄存器
>指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)
■SP為堆棧指針寄存器,指示棧頂?shù)钠频刂罚?/p>
不能再用于其他目的,具有專用目的
■BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的
基地址
>SI和DI在串操作指令有特殊用法
>SP和BP寄存器與SS段寄存器聯(lián)合使用確定堆棧段
中的存儲(chǔ)單元地址
二匕堆棧(Stack)
r堆屋是主存中一個(gè)特殊的區(qū)丁
》它采用先進(jìn)后出FILO(FirstInLastOut)
或后進(jìn)先出LIFO(LastInFirstOut)的
原則進(jìn)行存取操作,而不是隨機(jī)存取操作
方式
>堆棧通常由處理器自動(dòng)維持
A在8086中,由堆棧段寄存器SS和堆棧指針
寄存器SP共同指示
工工.■指令指針I(yè)P
》指;指針寄存器IP,指示代碼段中指令的偏
移地址
A它與代碼段寄存器CS聯(lián)用,確定下一條指
令的物理地址
?計(jì)算機(jī)通過CS:IP寄存器來控制指令序列
的執(zhí)行流程
>IP寄存器是一個(gè)專用寄存器
第I七1標(biāo)志寄存器
標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令
執(zhí)行形式,形成16位標(biāo)志寄存器FLAGS(程序狀
態(tài)字PSW寄存器)
?狀態(tài)標(biāo)志一一用來記錄程序運(yùn)行結(jié)果的狀態(tài)信息,
許多指令的執(zhí)行都將相應(yīng)地設(shè)置它
CFZFSFPFOFAF
A控制標(biāo)志一一可由程序根據(jù)需要用指令設(shè)置,用
于控制處理器執(zhí)行指令的方式
DFIFTF
151211109876543210
OFIDFIIFITFISFIZFIAFPFPcF
進(jìn)位標(biāo)志CF(CarryFlag)
A當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或
借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;
否則CF=O。
3AH+7cH=B6H,沒有進(jìn)位:CF=0
AAH+7cH=(1)26H,有進(jìn)位:CF=1
第1章零標(biāo)志ZF(ZeroFlag)
A若運(yùn)算結(jié)果為0,貝!JZF=1;
否則ZF=0
?,注意:ZF為1表示的結(jié)果是0
3AH+7cH=B6H,結(jié)果不是零:ZF=0
84H+7CH=(1)00H,結(jié)果是零:ZF=1
捫4.■符號標(biāo)志SF(SignFlag)
口h,
萬運(yùn)算結(jié)果最高位為1,貝[JSF=1;否則
SF=O
-
4T:工/丁7三,:':產(chǎn)=,::『二,''產(chǎn),三.
>有符號數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號
所以,最高有效位就是符號標(biāo)志的狀態(tài)
V________________________________________
3AH+7CH=B6H,最高位口7=1:SF=1
84H+7CH=(1)OOH,最高位口7=0:SF=0
第1章奇偶標(biāo)志PF(ParityFlag)
?當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1〃的個(gè)數(shù)為零或偶
數(shù)時(shí),PF=1;否則PF=0
%PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)
<是偶或奇,即使是進(jìn)行16位字操作
3AH+7cH=B6H=10110110
結(jié)果中有5個(gè)1,是奇數(shù):PF=0
溢出標(biāo)志OF(OverflowFlag)
■■二
A若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;
否則否=0
3AH+7CH=B6H,產(chǎn)生溢出:OF=1
AAH+7CH=(1)26H,沒有溢出:OF=0
(q問題
什么是溢出?
溢出和進(jìn)位有什么區(qū)別?
處理器怎么處理,程序員如何運(yùn)用?
■□何判斷是否溢出?______________
第什么是溢出
>>處理器內(nèi)部以補(bǔ)碼表示有符號數(shù)
>8位表達(dá)的整數(shù)范圍是:+127?―128
>16位表達(dá)的范圍是:+32767?一32768
>如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出
A有溢出,說明有符號數(shù)的運(yùn)算結(jié)果不正確
3AH+7cH=B6H,就是58+124=182,
已經(jīng)超出一128?+127范圍,產(chǎn)生溢出,故0F=1;
另一方面,補(bǔ)碼B6H表達(dá)真值是?74,
顯然運(yùn)算結(jié)果也不正確
二工起溢出和進(jìn)位
士溢工標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同
的標(biāo)志
A進(jìn)位標(biāo)志表示無符號數(shù)運(yùn)算結(jié)果是否超出范
圍,超出范圍后加上進(jìn)位或借位運(yùn)算結(jié)果仍
然正確;
?溢出標(biāo)志表示有符號數(shù)運(yùn)算結(jié)果是否超出范
圍,超出范圍后運(yùn)算結(jié)果不正確。
第1匕.?溢出和進(jìn)位的對比
例1:3AH+7cH=B6H
無符號數(shù)運(yùn)算:58+124=182
范圍內(nèi),無進(jìn)位
有符號數(shù)運(yùn)算:58+124=182
范圍外,有溢出
例2:AAH+7CH=(1)26H
無符號數(shù)運(yùn)算:170+124=294
范圍外,有進(jìn)位
有符號數(shù)運(yùn)算:-86+124=28
范圍內(nèi),無溢出
第1工A如何運(yùn)用溢出和進(jìn)位
?處理器對兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無符
號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;
同時(shí),根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢
出標(biāo)志OF
?應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來決定。也
就是說,如果將參加運(yùn)算的操作數(shù)認(rèn)為是無
符號數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號數(shù),
則要注意是否溢出
第1章溢出的判斷
金判;運(yùn)算結(jié)果是否溢出的簡量規(guī)則:
A只有當(dāng)兩個(gè)相同符號數(shù)相加(包括不同
符號數(shù)相減),而運(yùn)算結(jié)果的符號與原
數(shù)據(jù)符號相反時(shí),產(chǎn)生溢出;因?yàn)椋?/p>
時(shí)的運(yùn)算結(jié)果顯然不正確
?其他情況下,則不會(huì)產(chǎn)生溢出
r.輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag)
1A運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或
借位時(shí),AF=1;否則AF=Oo
3AH+7cH=B6H,D3有進(jìn)位:AF=1
為這個(gè)標(biāo)志主要由處理器內(nèi)部使用,
用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用
了一般不必關(guān)心
「匚則方向標(biāo)志DF(DirectionFlag)
士用T串操作指令,控制地址的變化方向:
。設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;
。設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少。
ACLD指令復(fù)位方向標(biāo)志:DF=0
ASTD指令置位方向標(biāo)志:DF-1
第1章■中斷允許標(biāo)志IF(Interrupt-enableFlag)
力用于控制外部可屏蔽中斷是否可以被處
理器響應(yīng):
。設(shè)置IF=1,則允許中斷;
。設(shè)置IF=O,則禁止中斷。
ACLI指令復(fù)位中斷標(biāo)志:IF=O
ASTI指令置位中斷標(biāo)志:IF=1
陷阱標(biāo)志TF(TrapFlag)
?用于控制處理器進(jìn)入單步操作方式:
。設(shè)置TF=O,處理器正常工作;
。設(shè)置TF=1,處理器單步執(zhí)行指令。
>單步執(zhí)行指令一一處理器在每條指令執(zhí)行結(jié)束時(shí),
便產(chǎn)生一個(gè)編號為1的內(nèi)部中斷
>這種內(nèi)部中斷稱為單步中斷
A所以TF也稱為單步標(biāo)志
■利用單步中斷可對程序進(jìn)行逐條指令的調(diào)試
■這種逐條指令調(diào)試程序的方法就是單步調(diào)試
■■數(shù)據(jù)信息的表達(dá)單位
?計(jì)算機(jī)中信息的單位
■二進(jìn)制位Bit:存儲(chǔ)一位二進(jìn)制數(shù):0或1
■字節(jié)Byte:8個(gè)二進(jìn)制位,D7~D0
■字Word:16位,2個(gè)字節(jié),D15?Do
■雙字DWord:32位,4個(gè)字節(jié),D31?D。
A最低有效位LSB:數(shù)據(jù)的最低位,Do位
A最高有效位MSB:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、
字、雙字分別指D7、Di5、D31位
第1匕.?數(shù)據(jù)的存儲(chǔ)格式
D7Do
低地址
第1章存儲(chǔ)單元及其存儲(chǔ)內(nèi)容
弓?■?
?7主存儲(chǔ)器需要利用地址區(qū)別
?每個(gè)存儲(chǔ)單元都有一個(gè)編號;被稱為
存儲(chǔ)器地址
>每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容
0002H單元存放有一個(gè)數(shù)據(jù)34H
表達(dá)為[0002H]=34H
廣F多字節(jié)數(shù)據(jù)存放方式
>多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占連續(xù)的多個(gè)存儲(chǔ)單元:
>存放:低字節(jié)存入低地址,高字節(jié)存入高地址
A表達(dá):用低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間
2號“字”單元的內(nèi)容為:
[0002H]=1234H
2號“雙字”單元的內(nèi)容為:
[0002H]=78561234H
a80x86處理器采用“低對低、高
<_對__高_(dá)_”__:__小__端__方__式__L__it_tl_e__E_n_d__ia_n
巴第I工1£存儲(chǔ)器數(shù)地?fù)?jù)址的可地以址是對字齊節(jié)單元地址、
字單元地址、雙字單元地址等等
?字單元安排在偶地址(xxxOB)、雙字單元
安排在模4地址(xxOOB)等,被稱為“地址
對齊(Align)”
?對于不對齊地址的數(shù)據(jù),處理器訪問時(shí),
需要額外的訪問存儲(chǔ)器時(shí)間
?應(yīng)該將數(shù)據(jù)的地址對齊,以取得較高的存
取速度
二工存儲(chǔ)器的分段管理
,80器CPU有20條地址線
■最大可尋址空間為22。=1MB
■物理地址范圍從00000H?FFFFFH
>8086CPU將1MB空間分成許多邏輯段
(Segment)
■每個(gè)段最大限制為64KB
■段地址的低4位為0000B
?這樣,一個(gè)存儲(chǔ)單元除具有一個(gè)唯一的物理
地址外,還具有多個(gè)邏輯地址
第1工.?物理地址和邏輯地址
??每個(gè)物理存儲(chǔ)單元有一個(gè)唯一的20位
編號,即物理地址:
00000H-FFFFFH
?分段后用戶編程時(shí),采用邏輯地址:
段基地址:段內(nèi)偏移地址
第■邏輯地址
十段說明邏輯段在主存中的起始位置
A8086規(guī)定段地址必須是模16地址:xxxxOH
?省略低4位0000B,段地址就可以用16位數(shù)
據(jù)表示,就能用16位段寄存器表達(dá)段地址
?偏移地址說明主存單元距離段起始位置的偏
移量
?每段不超過64KB,偏移地址也可用16位數(shù)
據(jù)表示
二匕.■物理地址和邏輯地址的轉(zhuǎn)換
E蔡輯地址中的段地址左移4位,加上
偏移地址就得到20位物理地址
>一個(gè)物理地址可以有多個(gè)邏輯地址
邏輯地址1460:100、1380:F00
物理地址14700H14700H
因&址左移建——14600H13800H
加上偏移地址——>+100H+F00H
得到物理地址——14700H14700H
第1匕.?段寄存器
I》8086有4個(gè)16位段寄存器,每個(gè)段寄存器確定一個(gè)
邏輯段的起始地址,每種邏輯段均有各自的用途
>CS(CodeSegment)
■指明代碼段的起始地址
>SS(StackSegment)
■指明堆棧段的起始地址
>DS(DataSegment)
■指明數(shù)據(jù)段的起始地址
>ES(ExtraSegment)
■指明附加段的起始地址
第1章代碼段(CodeSegment)
■/>代■碼段用來存放程序的指令序列
?:?代碼段寄存器CS存放代碼段的段地址
?:?指令指針寄存器IP指示下條指令的偏移地址
A處理器利用CS:IP取得下一條要執(zhí)行的
指令
「第i章
J.堆棧段(StackSegment)
■1堆棧段確定堆棧所在的主存區(qū)域
?:?堆棧段寄存器SS存放堆棧段的段地址
。堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂?/p>
A處理器利用SS:SP操作堆棧頂?shù)臄?shù)據(jù)
第1章數(shù)據(jù)段(DataSegment)
金數(shù)7段存放運(yùn)行程序所用的數(shù)據(jù)
。數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址
.:?各種主存尋址方式(有效地址EA)得到存
儲(chǔ)器中操作數(shù)的偏移地址
A處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)
據(jù)
附力口段(ExtraSegment)
A附加段是附加的數(shù)據(jù)段,也用于數(shù)據(jù)的保存:
?:?附加段寄存器ES存放附加段的段地址
?:?各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中
操作數(shù)的偏移地址
A處理器利用ES:EA存取附加段中的數(shù)據(jù)
>串操作指令將附加段作為其目的操作數(shù)的存
放區(qū)域
第1章如何分配各個(gè)邏輯段
A程序的指令序列必須安排在代碼段
A程序使用的堆棧一定在堆棧段
A程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,
也經(jīng)常安排在附加段,尤其是串操作
的目的區(qū)必須是附加段
A數(shù)據(jù)的存放比較靈活,實(shí)際上可以存
放在任何一種邏輯段中
第I匕上段超越前綴指令
沒有指明時(shí),一般的數(shù)據(jù)訪問在DS段;使用
BP訪問主存,則在SS段
?默認(rèn)的情況允許改變,需要使用段超越前綴
指令;8086指令系統(tǒng)中有4個(gè):
CS;代碼段超越,使用代碼段的數(shù)據(jù)
SS;堆棧段超越,使用堆棧段的數(shù)據(jù)
DS;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)
ES;附加段超越,使用附加段的數(shù)據(jù)
:段超越的示例
土沒二段超越的指令實(shí)例:二
MOVAX,[2000H];AX-DS:[2000H]
;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)
>采用段超越前綴的指令實(shí)例:
MOVAX,ES:[2000H];AX-ES:[2000H]
;從指定的ES附加段取出數(shù)據(jù)
段寄存器的使用規(guī)定
一|]
訪問存儲(chǔ)器的方式默認(rèn)可超越偏移地址
取指令CS無IP
堆棧操作SS無SP
一般數(shù)據(jù)訪問DSCSESSS有效地址EA
BP基址的尋址方式SSCSESDS有效地址EA
串操作的源操作數(shù)DSCSESSSSI
串操作的目的操作數(shù)ES無DI
第1章存儲(chǔ)器的分段
中■一
■>8086對邏輯段要求:
■段地址低4位均為0
■每段最大不超過64KB
A8086對邏輯段并不要求:
■必須是64KB
■各段之間完全分開(即可以重疊)
第1匕.?各個(gè)邏輯段獨(dú)立
存儲(chǔ)器物理地址
⑤各段獨(dú)立
第1章各個(gè)邏輯段重疊
存儲(chǔ)器物理地址
段寄存器
堆棧段256B
CS04800H
DS
數(shù)據(jù)段2KB
SS04000H
ES
代碼段8KB
02000H
00000H
(b)各段重疊
審.?1MB空間的分段
>1MB空間最多能分成多少個(gè)段?
■每隔16個(gè)存儲(chǔ)單元就可以開始一個(gè)段
■所以1MB最多可以有:
220^16=216=64K個(gè)段
>1MB空間最少能分成多少個(gè)段?
■每隔64K個(gè)存儲(chǔ)單元開始一個(gè)段
■所以1MB最少可以有:
220?216=16個(gè)段
第1匕.?1,68086的尋址方式
指令系統(tǒng)設(shè)計(jì)了多種操作數(shù)的來源
>尋找操作數(shù)的過程就是操作數(shù)的尋址
?操作數(shù)采取哪一種尋址方式,會(huì)影響機(jī)器運(yùn)行的
速度和效率
>如何尋址一個(gè)操作數(shù)對程序設(shè)計(jì)很重要
4上機(jī)實(shí)踐的建議
配合調(diào)試程序單步執(zhí)行每條指令
[或調(diào)用IO.UB的子程序顯示結(jié)果)
感性認(rèn),象深刻
第1章指令的組成
操作碼操作數(shù)
>指令由操作碼和操作數(shù)兩部分組成
A操作碼說明計(jì)算機(jī)要執(zhí)行哪種操作,如傳送、運(yùn)
算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的
組成部分
A操作數(shù)是指令執(zhí)行的參與者,即各種操作的對象
?有些指令不需要操作數(shù),通常的指令都有一個(gè)或
兩個(gè)操作數(shù),個(gè)別指令有3個(gè)甚至4個(gè)操作數(shù)
第1匕.?指令的操作碼和操作數(shù)
口「——I
??每種指令的操作碼:
■用一個(gè)唯一的助記符表示(指令功能的英文縮
寫)
■對應(yīng)著機(jī)器指令的一個(gè)二進(jìn)制編碼
A指令中的操作數(shù):
■可以是一個(gè)具體的數(shù)值
■可以是存放數(shù)據(jù)的寄存器
■或指明數(shù)據(jù)在主存位置的存儲(chǔ)器地址
第1匕.?8086的機(jī)器代碼格式
1/2字節(jié)0/1字節(jié)0/1/2字節(jié)0/1/2字節(jié)
>給出立即尋址方式需要的數(shù)值本身
標(biāo)準(zhǔn)機(jī)器代碼示例
1/2字節(jié)0/1字節(jié)0/1/2字節(jié)0/1/2包
操作碼|modregr/m位移量立即數(shù)
movax,[BP+0];機(jī)器代碼是8B4600
>前一個(gè)字節(jié)8B是操作碼(含w=1表示字操作)
A中間一個(gè)字節(jié)46(01000110)是“modreg
r/m”字節(jié)
■reg=000表示目的操作數(shù)為AX
■mod=01和17m=110表示源操作數(shù)為[BP+D8]
A最后一個(gè)字節(jié)就是8位位移量〔D8=〕00
第1章其它機(jī)器代碼形式
操作碼操作數(shù)
moval,05;機(jī)器代碼是BO05
?前一個(gè)字節(jié)B0是操作碼(含一個(gè)操作
數(shù)AL),后一個(gè)字節(jié)05是立即數(shù)
movax,0102H;機(jī)器代碼是B0201
A前一個(gè)字節(jié)B8是操作碼(含一個(gè)操作
數(shù)AX),后兩個(gè)字節(jié)0201是16位立即
數(shù)(低字節(jié)02在低地址)
F第1匕將上操指令作的助記―符格式注釋
?操作數(shù)2,稱為源操作數(shù)src,它表示參與
指令操作的一個(gè)對象
?操作數(shù)1,稱為目的操作數(shù)dest,它不僅可
以作為指令操作的一個(gè)對象,還可以用來存
放指令操作的結(jié)果
>分號后的內(nèi)容是對指令的解釋
第1工??傳送指令MOV的格式
MOVdest,src;dest^-src
>功能:將源操作數(shù)src傳送至目的操作數(shù)dest
MOVAL,05H;AL-05H
MOVBX,AX;BX-AX
MOVAX,[SI];AX—DS:[SI]
MOVAX,[BP+06H];AX-SS:[BP+06H]
MOVAX,[BX+SI];AX-DS:[BX+SI]
第?傳送指令MOV的功能
第1匕.?立即數(shù)尋址方式
?指令中的操作數(shù)直接存放在機(jī)器代碼中,緊
跟在操作碼之后(操作數(shù)作為指令的一部分
存放在操作碼之后的主存單元中)
>這種操作數(shù)被稱為立即數(shù)imm
■它可以是8位數(shù)值i8(OOH-FFH)
■也可以是16位數(shù)值i16(0000H?FFFFH)
?立即數(shù)尋址方式常用來給寄存器賦值
MOVAL,05H;AL―05H
MOVAX,0102H;AX-0102H
第1章.立即數(shù)尋址指令
MOVAX,0102H;AX―0102H
存儲(chǔ)器
高地址
—立即數(shù)高字節(jié)
?—
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高空建筑涂料施工安全合同
- 風(fēng)力發(fā)電樁基夯擴(kuò)樁施工合同
- 砂石采購合同范本樣本
- 深圳電力施工合同:公共安全篇
- 文化娛樂供電合同管理
- 沙河頂租房合同范例
- 鐵路線路建設(shè)合同三篇
- 高尚住宅開發(fā)權(quán)轉(zhuǎn)讓合同三篇
- 團(tuán)體保險(xiǎn)合同受益人管轄條款
- 集體經(jīng)濟(jì)合同整改報(bào)告范文
- 腦機(jī)接口技術(shù)在教育領(lǐng)域的應(yīng)用前景
- 鐵路檢車員個(gè)人工作總結(jié)2篇
- 勞動(dòng)防護(hù)用品的使用和維護(hù)安全培訓(xùn)
- 京東財(cái)務(wù)部門組織架構(gòu)
- 土壤污染治理與修復(fù)
- 保健品“番茄紅素軟膠囊”的研發(fā)-醫(yī)學(xué)資料
- 北京市石景山區(qū)2023-2024學(xué)年六年級上學(xué)期期末語文試卷
- 天津市和平區(qū)第一中學(xué)2023-2024學(xué)年八年級上學(xué)期期末英語試卷
- 組裝簡易太陽能小車
- 2023年天津中學(xué)業(yè)水平合格性考試物理試卷試題(含答案詳解)
- 廣東省深圳市2022-2023學(xué)年五年級上學(xué)期數(shù)學(xué)期末考試試卷(含答案)5
評論
0/150
提交評論