匯編語言 課件 第1章_第1頁(yè)
匯編語言 課件 第1章_第2頁(yè)
匯編語言 課件 第1章_第3頁(yè)
匯編語言 課件 第1章_第4頁(yè)
匯編語言 課件 第1章_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IBMPCIBMPC匯編語言匯編語言程序設(shè)計(jì)程序設(shè)計(jì)( (第第2 2版版) )清華大學(xué)計(jì)算機(jī)系列教材清華大學(xué)計(jì)算機(jī)系列教材 沈美名沈美名 溫冬蟬溫冬蟬 編著編著計(jì)算機(jī)語言的發(fā)展計(jì)算機(jī)語言的發(fā)展 機(jī)器語言機(jī)器語言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.匯編語言匯編語言高級(jí)語言高級(jí)語言匯編語言的特點(diǎn)匯編語言的特點(diǎn) 面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算面向機(jī)器的低級(jí)語言,通常是為特定的計(jì)算 機(jī)或計(jì)算機(jī)系列機(jī)或計(jì)算機(jī)系列專門設(shè)計(jì)的。專門設(shè)計(jì)的。 保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡(jiǎn)

2、捷 的特點(diǎn)。的特點(diǎn)。 可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備, , 如磁盤、存儲(chǔ)器、如磁盤、存儲(chǔ)器、CPUCPU、I/OI/O端口等。端口等。 目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計(jì)語言。是高效的程序設(shè)計(jì)語言。 經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛經(jīng)常與高級(jí)語言配合使用,應(yīng)用十分廣泛。#include stdafx.h #include stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c)

3、; return 0; 編譯后的目標(biāo)文編譯后的目標(biāo)文件達(dá)到件達(dá)到3.59KBdata segmentdata segmenta db ?a db ?b db ?b db ?c db ?c db ?string db c=$string db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code, assume cs:code, ds:data, es:datads:data, es:datastart:start: push dspush ds sub ax,ax sub a

4、x,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax mov es,ax mov es,axmov a,1mov a,1 mov b,2 mov b,2 mov al,a mov al,a add al,b add al,b mov c,al mov c,al lea dx,stringlea dx,string mov ah,09 mov ah,09 int 21h int 21h add c,30hadd c,30h mov dl,c mov dl,c mov ah,2 mov ah,2 int 21h int 2

5、1h mov dl,0ah mov dl,0ah int 21h int 21h mov dl,0dh mov dl,0dh int 21h int 21h ret retmain endpmain endpcode endscode ends end start end start例例 2. C = a + b2. C = a + b匯編后的目匯編后的目標(biāo)文件只有標(biāo)文件只有208208字節(jié)字節(jié)第第1章章 基基 礎(chǔ)礎(chǔ) 知知 識(shí)識(shí) 數(shù)制數(shù)制 數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換 運(yùn)算運(yùn)算 數(shù)和字符的表示數(shù)和字符的表示預(yù)預(yù) 備備 知知 識(shí)識(shí)存儲(chǔ)容量存儲(chǔ)容量1K = 1024 = 210 (Kilo) 1M

6、 = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1個(gè)二進(jìn)制位:bit (比特)8個(gè)二進(jìn)制位:Byte (字節(jié)) 1Byte = 8bit2個(gè)字節(jié): Word (字) 1Word = 2Byte = 16bit1. 數(shù)數(shù) 制制 數(shù)數(shù) 制制 基基 數(shù)數(shù) 數(shù)數(shù) 碼碼 二進(jìn)制二進(jìn)制 Binary 2 0, 1 八進(jìn)制八進(jìn)制 Octal 8 0, 1, 2, 3, 4, 5, 6, 7 十進(jìn)制十進(jìn)制 Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 十六進(jìn)制十六進(jìn)制 Hexadecimal 16 0, 1, 2, 3, 4, 5,

7、6, 7, 8, 9, A, B, C, D, E, F二進(jìn)制二進(jìn)制: 基數(shù)為2,逢二進(jìn)一 1101B = 12 3 + 12 2 + 12 0 = 13十六進(jìn)制十六進(jìn)制:基數(shù)為16,逢十六進(jìn)一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 02. 數(shù)制之間的轉(zhuǎn)換數(shù)制之間的轉(zhuǎn)換 二進(jìn)制二進(jìn)制 十六進(jìn)制十六進(jìn)制 十進(jìn)制十進(jìn)制 二進(jìn)制二進(jìn)制 十進(jìn)制十進(jìn)制 十六進(jìn)制十六進(jìn)制降冪法降冪法 除法除法 二進(jìn)制二進(jìn)制 十六進(jìn)制十六進(jìn)制 0011 0101 1011 1111 3 5 B F 0011,0101,1011,11

8、11B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B 1011B = 23+21+20=11D 降冪法 除法 例例: 27D = ? B 27 11 3 3 1 - - - - 2n 16 8 4 2 1 1 1 0 1 1 27D = 11011B 二進(jìn)制二進(jìn)制 十進(jìn)制十進(jìn)制 十六進(jìn)制十六進(jìn)制 十進(jìn)制十進(jìn)制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降冪法 除法 例例:399D = ? H 399 143 15 399/1624/161/16 0 - - - 16n

9、 256 16 1 F 8 1 1 8 F 399D = 18FH 算術(shù)運(yùn)算算術(shù)運(yùn)算 二進(jìn)制數(shù):二進(jìn)制數(shù):逢二進(jìn)一逢二進(jìn)一 借一為二借一為二 加法規(guī)則 乘法規(guī)則 0 + 0 = 0 0 0 = 0 0 + 1 = 1 0 1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 0 (進(jìn)位1) 1 1 = 13. 運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)0 5 C 3 H3 D 2 5 H4 2 E 8 H3 D 2 5 H0 5 C 3 H3 7 6 2 H1 11 1十六進(jìn)制數(shù):十六進(jìn)制數(shù):逢十六進(jìn)一逢十六進(jìn)一 借一為十六借一為十六 邏輯運(yùn)算(邏輯運(yùn)算(按位操作按位操作)

10、“與與”運(yùn)算(運(yùn)算(AND) “或或”運(yùn)算(運(yùn)算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1“非非”運(yùn)算(運(yùn)算(NOT) “異或異或”運(yùn)算(運(yùn)算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0例例:X=00FFH Y=5555H,求Z=XY= ? X= 0000 0000 1111 1111 B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH4. 數(shù)和字符的表示數(shù)和字符的表示 計(jì)算機(jī)中正負(fù)計(jì)算

11、機(jī)中正負(fù)數(shù)的表示數(shù)的表示 7 6 5 4 3 2 1 0符號(hào)位符號(hào)位 數(shù)值位數(shù)值位假設(shè)機(jī)器字長(zhǎng)字長(zhǎng)為16位:符號(hào)位符號(hào)位 = 0 正數(shù)正數(shù) 數(shù)值位數(shù)值位 = 1 負(fù)數(shù)負(fù)數(shù)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假設(shè)機(jī)器字長(zhǎng)字長(zhǎng)為8位:H.O.ByteH.O.ByteL.O.ByteL.O.ByteH.O.NibbleH.O.NibbleL.O.NibbleL.O.Nibble數(shù)的常用表示法數(shù)的常用表示法 原碼原碼 反碼反碼 補(bǔ)碼補(bǔ)碼原碼表示法原碼表示法:符號(hào):符號(hào) + 絕對(duì)值絕對(duì)值例:n = 8bit +3原碼 = 0 000,0011 = 03H - 3原碼

12、 = 1 000,0011 = 83H +0原碼 = 0 000,0000 = 00H - 0原碼 = 1 000,0000 = 80H 0 的表示不惟一反碼表示法反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反例:n = 8bit +5反碼 = 0 000,0101 = 05H - 5反碼 = 1 111,1010 = FAH +0反碼 = 0 000,0000 = 00H - 0反碼 = 1 111,1111 = FFH 0 的表示不惟一例: 機(jī)器字長(zhǎng)8位,- 46補(bǔ)碼 = ? 46補(bǔ)碼 = 0 0 1 0 1 1 1 0 1 1 0 1

13、 0 0 0 1 1 1 0 1 0 0 1 0 = D2H 機(jī)器字長(zhǎng)16位,- 46補(bǔ)碼 = FFD2H +0補(bǔ)碼 = 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 = - 0補(bǔ)碼 0 的表示的表示惟一按位求反按位求反末位加一末位加一按位求反按位求反末位加一末位加一補(bǔ)碼補(bǔ)碼(Twos Complement)表示法:表示法:正數(shù)的補(bǔ)碼:正數(shù)的補(bǔ)碼: 同原碼負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:(1)寫出與該負(fù)數(shù)相對(duì)應(yīng)的正數(shù)的補(bǔ)碼 (2)按位求反 (3)末位加一 十進(jìn)制 二進(jìn)制 十六進(jìn)制 十進(jìn)制 十六進(jìn)制 n=8 n=16 +127 0111 1111 7F +

14、32767 7FFF +126 0111 1110 7E +32766 7FFE . . . +2 0000 0010 02 +2 0002 +1 0000 0001 01 +1 0001 0 0000 0000 00 0 0000 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE . . .-126 1000 0010 82 -32766 8002-127 1000 0001 81 -32767 8001-128 1000 0000 80 -32768 8000n位二進(jìn)制補(bǔ)碼的表數(shù)范圍:位二進(jìn)制補(bǔ)碼的表數(shù)范圍: - 2n-1 N 2n-1-1無符

15、號(hào)整數(shù)的表數(shù)范圍:無符號(hào)整數(shù)的表數(shù)范圍: 0 N 2n-1 補(bǔ)碼的加法和減法:補(bǔ)碼的加法和減法:求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算 :對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一對(duì)一個(gè)二進(jìn)制數(shù)按位求反、末位加一 X補(bǔ)碼補(bǔ)碼 -X補(bǔ)碼補(bǔ)碼 X補(bǔ)碼補(bǔ)碼加法規(guī)則加法規(guī)則:X+Y補(bǔ)碼補(bǔ)碼 = X補(bǔ)碼補(bǔ)碼 + Y補(bǔ)碼補(bǔ)碼減法規(guī)則減法規(guī)則:X-Y補(bǔ)碼補(bǔ)碼 = X補(bǔ)碼補(bǔ)碼 + -Y補(bǔ)碼補(bǔ)碼 補(bǔ)碼減法可轉(zhuǎn)換為補(bǔ)碼加法補(bǔ)碼減法可轉(zhuǎn)換為補(bǔ)碼加法 64(-46) 180100 00001101 00100001 0010例: 進(jìn)位和溢出進(jìn)位和溢出進(jìn)位進(jìn)位: 由于運(yùn)算結(jié)果超出了位數(shù)由于運(yùn)算結(jié)果超出了位數(shù),最高有效位向最高有效位向 前的進(jìn)位,這一位

16、自然丟失,一般不表前的進(jìn)位,這一位自然丟失,一般不表 示結(jié)果的對(duì)錯(cuò)。示結(jié)果的對(duì)錯(cuò)。溢出:溢出:表示結(jié)果超出了字長(zhǎng)允許表示的范圍,表示結(jié)果超出了字長(zhǎng)允許表示的范圍, 一般會(huì)造成結(jié)果出錯(cuò)。一般會(huì)造成結(jié)果出錯(cuò)。例:例: (64) 11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 10000000 進(jìn)位進(jìn)位 溢出溢出 字符的表示字符的表示ASCII碼碼:用一個(gè)字節(jié)字節(jié)來表示一個(gè)字符,低7位 為字符的ASCII值,最高位一般用作 校驗(yàn)位。 例:例: A 41H a 61H 1 31H 換行換行 0AH 回車回車 0DH 空格空

17、格 20H實(shí)驗(yàn)一實(shí)驗(yàn)一 DEBUG的使用的使用 一一 、實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)?zāi)康?掌握DEBUG常用命令的使用;熟悉CPU內(nèi)部有多少寄存器;掌握訪問段式存儲(chǔ)器結(jié)構(gòu)地址的表示方法。 二、實(shí)驗(yàn)內(nèi)容二、實(shí)驗(yàn)內(nèi)容 將數(shù)據(jù)段中的兩個(gè)數(shù)求和,結(jié)果保存在數(shù)據(jù)段中。 源程序、機(jī)器語言程序如下: CS:0100 A1 00 00 MOV AX,0000 CS:0103 03 06 02 00 ADD AX,0002 CS:0107 A3 04 00 MOV 0004,AX CS:010A CB RETF 數(shù)據(jù)段內(nèi)容如下: DS:0000 2301 2500 三、實(shí)驗(yàn)步驟三、實(shí)驗(yàn)步驟 1、用E命令鍵入上述機(jī)器語言程序和數(shù)據(jù)段的初值-E DS:000 23 01 25 00 -E DS:006 2A 2A 2A -E CS:100 A1 00 00 03 06 02 00-E CS:107 A3 04 00 CB 2、用D命令檢查數(shù)據(jù)段、代碼段內(nèi)容-D DS:0-D CS:100 3、用T命令逐條執(zhí)行上述程序,注意每條指令執(zhí)行后相應(yīng)寄存器的變化 4、用U命令反匯編本程序-U 100 10A 5、用R命令修改IP的內(nèi)容為0100重新執(zhí)行上述程序 -R IP顯示:IP 010A修改為:0100 6、用G命令運(yùn)行程序-G CS:0100 107觀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論