安徽大學匯編語言程序設計.ppt
《安徽大學匯編語言程序設計.ppt》由會員分享,可在線閱讀,更多相關《安徽大學匯編語言程序設計.ppt(469頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、匯編語言程序設計,,引言,課程介紹 課程的任務、目的和基本要求 主要教學內(nèi)容和學時 教學要求 主要參考書 作業(yè)、實驗和考試,課程介紹,專業(yè)基礎課 軟件開發(fā)的一個組成部分 一種低級語言的程序設計,課程的任務、目的和基本要求,了解微型計算機的基本結構 了解和掌握微型計算機的基本工作原理 掌握匯編語言及其應用 能獨立完成簡單的匯編語言程序設計 認真完成作業(yè)和上機任務,主要教學內(nèi)容和學時,主要內(nèi)容1----8章 學時:上課54學時 上機36學時,教學要求,課堂上注意聽講、重要的是理解 部分補充內(nèi)容需要記筆記 課堂外一定要看書復習或預習、完成作業(yè) 充分利用上機時間、多編程練習,主要參考書,80X8
2、6匯編語言程序設計教程,楊季文等著,清華大學出版社。 匯編語言程序設計,錢曉捷著,電子工業(yè)出版社。 IBM PC匯編語言程序設計,沈美明著,清華大學出版。,作業(yè)、實驗和考試,考勤:15% 作業(yè) (15%):1次/1 2周 考試 (70%):閉卷考試 實驗 (單獨考試):9次,第一章 匯編語言基礎知識,1.1 匯編語言簡介 1.2 計算機中數(shù)據(jù)的表示 1.3 計算機組織,1.1 匯編語言簡介,1.1.1 什么是匯編語言 1.1.2 為什么要學習匯編語言,1.1.1 什么是匯編語言,機器指令:cpu能直接識別并遵照執(zhí)行的指令,用二進制編碼表示,由操作碼,操作數(shù)組成,編碼只含二進制0或1。 機器語言
3、:用二進制編碼組成的機器指令的集合和一組使用機器指令的規(guī)則。 匯編語言:對機器指令中的操作碼用英文單詞的縮寫描述(助記符),對操作數(shù)用標號、變量、常量描述。,,用匯編語言編寫的程序稱為匯編源程序。 匯編語言是一種符號語言,比機器語言容易理解和掌握,也容易調(diào)試和維護。但是,匯編語言源程序要翻譯成機器語言程序才可以由計算機執(zhí)行。這個翻譯的過程稱為“匯編”,這種把匯編源程序翻譯成目標程序的語言加工程序稱為匯編程序。,1.1.2 為什么要學習匯編語言,匯編語言程序是用符號指令寫成的,本質上是機器語言。與具體機器的機型的硬件密切相關,可以直接有效地控制計算機硬件,程序運行速度快,程序短小精悍,占用內(nèi)存少
4、,在某些特殊應用場合更能發(fā)揮作用。如:智能化儀表 家用電器 實時控制系統(tǒng) 單片機控制 病毒研究等。 使用匯編語言能從根本上認識和理解計算機的工作過程,它可直接而精確地控制計算機硬件的操作。 學習匯編語言對從事計算機的研究和開發(fā)有著重要的意義。所以,它作為一門計算機專業(yè)基礎課,并對計算機專業(yè)今后課程的學習是非常重要的。,1.1.3 匯編語言的特點,與機器有關:移植性差,但可直接控制硬件。 程序效率高。 編寫匯編語言源程序比編寫高級語言源程序煩瑣。 調(diào)試困難。,1.2 計算機中數(shù)據(jù)的表示,1.2.1 不同進位計數(shù)制及其相互轉換 1.2.2 二進制數(shù)和十六進制數(shù)的運算 1.2.3 帶符號數(shù)的表示 1
5、.2.4 補碼的加法和減法 1.2.5 無符號數(shù)的表示 1.2.6 字符的表示 1.2.7 基本邏輯運算,1.2.1 不同進位計數(shù)制及其相互轉換,1.進位計數(shù)制 對于任意一個進位計數(shù)制,如果用R表示基數(shù),那么任何一個數(shù)S均可用如下多項式表示: S= knRn+kn-1Rn-1++k0R0+k-1R-1+k-2R-2 ++k-mR-m,,十進制數(shù): 123.6(D)=1102+2101+3100+610(-1) 各位權值 10k 二進制數(shù): 101101(B) = 125+123+122+120=45(D) 各位權值 2k 十六進制數(shù): 5F(H)=5161+15160(D)
6、 各位權值 16k,,在書寫不同進位計數(shù)制數(shù)時,常常在尾部用一個字母來表示該數(shù)是什么進位計數(shù)制的數(shù)。 結尾用B(2進制數(shù))、O(8進制數(shù))、D(10進制數(shù))、H(16進制數(shù))。缺省為十進制數(shù)。例如712O、9198D、10010B、BE49H等等。,,2.各種數(shù)制間的相互轉換 例如: 13 .8125 D = 1101.1101B = D.DH,,二進制數(shù)轉換為十進制數(shù) 方法:各位二進制數(shù)碼乘以對應的權之和 例:1.1 十六進制數(shù)轉換為十進制數(shù) 方法:各位十六進制數(shù)碼乘以對應的權之和 例: 1.2,,十進制數(shù)轉換為二進制數(shù) (1)降冪法:先寫出小于此數(shù)的各位二進制權 值,然后再求和
7、。(適用于數(shù)值不大的數(shù)) 例:1.3 (2)除法:不斷除以2,計下余數(shù),直到商為0為止。(僅適用于整數(shù)部分) 例:1.4,,對于十進制數(shù)的小數(shù)部分除了可以使用降冪法也可采用乘法,即不斷乘2,并計下整數(shù),而小數(shù)部分再乘2,直到結果為0為止。 并非所有的十進制小數(shù)都能用二進制完全表示,可按需要取一定精度即可。 例:1.5,,十進制數(shù)轉換為十六進制數(shù) (1)降冪法:先寫出小于此數(shù)的各位十六進制權值,然后再求和。(適用于數(shù)值不大的數(shù)) 例:1.6 (2)除法:不斷除以16,計下余數(shù),直到商為0為止。(僅適用于整數(shù)部分) 例:1.7,,對于十進制數(shù)的小數(shù)部分除了可以使用降冪法也可采用乘法,即不
8、斷乘16,并計下整數(shù),而小數(shù)部分再乘16,直到結果為0為止。 并非所有的十進制小數(shù)都能用十六進制完全表示,可按需要取一定精度即可。,,二進制數(shù)和十六進制數(shù)的相互轉換 直接轉換,每四位一組,整數(shù)從低位開始,小數(shù)從高位開始,不足位補0。 例:1.8,1.2.2 二進制數(shù)和十六進制數(shù)運算,二進制運算 加法規(guī)則: 0+0 =0 1+0=1 0+1=1 1+1=0(進位1) 乘法規(guī)則: 00=0 10=0 01=0 11=1 十六進制數(shù)運算 原則:逢十六進一 例1.9,1.10,1.11,1.2.3 帶符號數(shù)的表示,帶符號數(shù)最高位是符號位。 正數(shù)的符號位為0,負數(shù)的符號位為1。 表示方法:原碼、
9、補碼、反碼。,,,,,數(shù)的補碼表示 定義: (X=0時) X補=符號+|X| ------(1) (X<0時) X補= 2n - |X| =( 2n - 1-|X| ) + 1 ---(2) 即X<0時: X補 + |X| = 2n 數(shù)的補碼具體操作是: 正數(shù)不變,負數(shù)則用絕對值取反+1,,例1.12 X補 求補等于 -X補 等于|X|(X<0) 例1.13,1.2.4 補碼的加減法,加法規(guī)則:X+Y補=X補+Y補 減法規(guī)則:X-Y補=X補+-Y補 例:1.14,1.2.5 無符號數(shù)的表示,對于正數(shù),不保留符號位,把符號位也作為數(shù)值,這樣的數(shù)叫無符號數(shù)
10、。,1.2.6 字符的表示,ASCII碼 擴充的ASCII碼 表1.1,1.2.7 基本邏輯運算,邏輯運算按位操作 與運算 AND 或運算 OR 異或運算 XOR 非運算 NOT,1.3 計算機組織,1.3.1 計算機系統(tǒng)組成 1.3.2 中央處理器 1.3.3 存儲器 1.3.4 外部設備和接口,1.3.1 計算機系統(tǒng)組成,,,中央處理機 CPU 對匯編語言程序員,最關心其中的寄存器。 存儲器 RAM 呈現(xiàn)給匯編語言程序員的,是存儲器地址。 輸入輸出子系統(tǒng) I/O 匯編語言程序員看到的是端口(I/O地址)。 系統(tǒng)總線 數(shù)據(jù)總線, 地址總線, 控制總線 。,1.3.2 中央處理器CPU
11、,CPU 的發(fā)展: 8088 (準16位機) 8086:16位機,16位通用寄存器,20位地址線,1M尋址. 80286(準32位機) 80386 : 32位機,32位通用寄存器,32位地址線,4G尋址. 80486 80586:1993,字長32位,主頻60-166M,數(shù)據(jù)總線64,地址總線32,尋址4G 80686 P:1997,字長32位,主頻-333 M,數(shù)據(jù)總線64,地址總線32,尋址4G P:1999, 字長32位,主頻-600 M,數(shù)據(jù)總線64,地址總線36,尋址64G P,1)CPU的組成,運算器 控制器 寄存器 高速緩存,2)寄存器組,通用數(shù)據(jù)寄存器 AX =AH
12、AL 累加器 BX =BH BL 基址寄存器 CX =CH CL 計數(shù)寄存器 DX =DH DL 數(shù)據(jù)寄存器,,通用地址寄存器 SP 堆棧指針 BP 基址指針 DI 目的變址寄存器(自動增1/減1) SI 源變址寄存器(自動增1/減1),,段寄存器 CS 代碼段寄存器 DS 數(shù)據(jù)段寄存器 ES 附加段寄存器 SS 堆棧段寄存器,,專用寄存器 IP 指令指針寄存器 FLAGS 標志寄存器 狀態(tài)標志和控制標志,,1.3.3 存儲器,存儲器分內(nèi)存和外存,這里指內(nèi)存,外存指硬盤等。 存儲器按作用分: RAM ROM(C000FFFF) Cache(緩沖C
13、PU與低速的RAM),1)存儲單元的地址和內(nèi)容,,,80 x86微機的內(nèi)存儲器以字節(jié)為基本存儲單位,或叫基本存儲單元。 每一個存儲單元對應一個唯一的存儲器地址,從低到高按順序編號,稱為物理地址。 存儲單元的地址從0開始編號,機器中地址以二進制數(shù)表示,無符號數(shù),書寫用十六進制。 80 x86微機使用20位地址線,尋址能力為1MB,范圍為00000HFFFFFH。,,一個存儲單元中存放的信息 稱為該存儲單元的內(nèi)容。 一個字存放在連續(xù)單元,低位對低地址,高位對高地址,訪問時以低地址訪問。,2)存儲器的分段,? 字長16位表示地址,可表示多少字節(jié)單元。 210=1024=1K 216=65536=
14、64K 0---65535 地址編號十六進制: 0---FFFFH ? 用什么辦法提供20位地址。,,注:相當于從0地址開始,每16個字節(jié)為一小段,段地址必須從任一小段的首地址開始。,,,用段地址:偏移地址表示邏輯地址。 每個邏輯地址對應一個唯一的物理地址,但每個物理地址并不對應唯一的邏輯地址。 例如:邏輯地址2BH:23H和邏輯地址2CH:13H 邏輯地址2BH:23H的物理地址為: 2B0H + 23H = 2D3H 邏輯地址2CH:13H的物理地址為: 2C0H + 13H = 2D3H 程序中使用的是邏輯地址。,1.3.4 外部設備和接口,外部設備也稱作輸入/輸
15、出設備或I/O設備。 外部設備和主機之間通過輸入/輸出接口連接,接口內(nèi)有若干寄存器,用于在外設和CPU間傳遞信息。 每個寄存器規(guī)定一個端口(Port)號,也稱作I/O地址。,,寄存器(端口)可分為3類: 數(shù)據(jù)端口、控制端口、狀態(tài)端口 通常采用十六進制數(shù)來表達端口 Intel 8086支持64K個8位端口 其I/O地址可以表示為:0000H FFFFH,,通過調(diào)用例行程序進行 BIOS Basic Input/Output System (存在ROM中) DOS Disk Operating System (存在磁盤中),第二章 匯編語言程序實例及上機操作,實踐性很強,結合
16、上機是最好的學習方法。,2.1 匯編語言程序實例,2.1.1 實例1 2.1.2 實例2,例2.1 單個字符的鍵盤輸入與顯示輸出程序,code segment assume cs:code start: mov ah,1 int 21h mov dl,al add dl,1 mov ah,2 int 21h mov ah,4ch int 21h code ends end start 運行結果:鍵入A接著顯示B,鍵入K接著顯示L,例2.2 編寫顯示“HELLO,WORLD!” 程序。,data se
17、gment String db HELLO,WORLD! $ data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,offset string mov ah,9 int 21h mov ah,4ch int 21h code ends end start,2.2 工作環(huán)境及上機操作,2.2.1 匯編語言的系統(tǒng)工作文件 2.2.2 進入DOS命令行方式 2.2.3 編輯建立ASM源程序文件 2.2.4 匯編產(chǎn)
18、生OBJ二進制目標文件 2.2.5 連接產(chǎn)生EXE可執(zhí)行文件 2.2.6 程序的運行和調(diào)試,2.2.1 匯編語言的系統(tǒng)工作文件,使用編輯程序編輯源程序文件(.asm) 使用匯編程序(MASM)將源程序文件(.asm)匯編成目標文件(.obj) 使用連接程序(LINK),將目標文件(.obj)連接成可執(zhí)行文件(.EXE) 使用調(diào)式程序(DEBUG),調(diào)式可執(zhí)行文件,運行匯編語言程序需要以下文件,編輯程序 EDIT.COM 匯編程序 MASM.EXE 連接程序 LINK.EXE 調(diào)試程序 DEBUG.EXE,注意幾點,本書使用Microsoft Masm6.0版本。 EDIT.COM 和 DEBU
19、G.EXE為系統(tǒng)自帶。 MASM.EXE 和 LINK.EXE不是系統(tǒng)自帶。 為方便操作,系統(tǒng)文件和用戶文件盡可能放在同一文件目錄下。,2.2.2 進入DOS命令行方式,程序---附件---命令提示符 運行---CMD 退出用EXIT,2.2.3 編輯建立ASM源程序文件,利用EDIT編輯源文件: CEDIT CEDIT 文件名.ASM 例如文件名為 Hello.ASM 在EDIT程序中,將我們編寫的匯編程序輸入到計算機中,并將Hello.ASM保存為源程序。然后退出EDIT程序,回到DOS狀態(tài)。,2.2.4 匯編產(chǎn)生OBJ二進制目標文件,源程序建立后,就要用匯編程序對源程序匯編,匯編
20、后產(chǎn)生二進制的目標文件(OBJ文件),其操作與匯編程序回答如下: CMASM Hello.ASM Microsoft (R) Macro Assmbler Version 5.0 Copyright (C) Microsoft Corp 1981-1985,1987,All rights reserved Object filename Hello.OBJ: Source listingNUL.LST: Cross-reference NUL.CRF: 51646 + 447778 Bytes symbol space free 0 Warning Errors
21、0 Severe Errors 說明: Hello.OBJ 目標文件,這是匯編的主要目的 Hello.LST 列表文件,可有可無 Hello.CRF 交叉引用表,可有可無 0 Warning Errors 0個警告錯誤 0 Severe Errors 0個嚴重錯誤,2.2.5 連接產(chǎn)生EXE可執(zhí)行文件,匯編程序已產(chǎn)生出二進制的目標文件(OBJ),但OBJ文件并不是可執(zhí)行文件,還必須用連接程序(LINK)把OBJ文件轉換為可執(zhí)行的EXE文件。當然,如果一程序由多個模塊組成時,也應該通過LINK把它們連接在一起。操作如下: CLINK Hello.OBJ
22、 CLINK Hello1+Hello2+Hello3 Run fileHello.ASM.EXE: List FileNUL.MAP: Libraries .LIB: LINK : Warning L4012: no stack segment 一般情況下,用戶只需要按回車使用默認值就可以了。 兩個輸入文件 兩個輸出文件 OBJ文件 EXE 文件 LIB文件(庫文件) MAP 文件(連接映像文件),2.2.6 程序的運行和調(diào)試,建立了EXE文件后,就可以直接在DOS的提示符下,輸入EXE文件的文件名,如: CHello 直接運行程
23、序。 對EXE文件無需擴展名就可執(zhí)行。 真正的可執(zhí)行文件是生成的,不是用改名操作得到的。,,調(diào)試程序DEBUG .EXE是WINDOWS系統(tǒng)自帶的。 DEBUG Hello.EXE “-” DEBUG命令提示符,2.3 DEBUG 主要命令,格式如下: C:DEBUG 或 C: DEBUG 盤符路徑要調(diào)試的程序 DEBUG中的數(shù)據(jù)顯示均為十六進制。,1. 反匯編命令U,格式1:U 地址 地址用偏移地址或者段地址:偏移地址表示。該命令從指定的地址開始,把機器語言反匯編為匯編語言。若省去指定地址,則以上一個U命令反匯編的最后一條指令地址的下一個單元作為起始地址。 格式2:U 范圍
24、范圍用a1 a2 或者aLb表示。對指定范圍的內(nèi)存單元進行反匯編,范圍可以由起始地址、結束地址或起始地址及長度來確定。,2. 顯示內(nèi)存命令D,格式1:D 地址 從指定的地址開始,顯示內(nèi)存,便于用戶看數(shù)據(jù)。 格式2:D 范圍 顯示指定范圍的內(nèi)存內(nèi)容。,3. 運行程序命令G,格式:G=起始地址中止地址 起始地址規(guī)定了執(zhí)行的起始地址。 中止地址是斷點地址,讓程序暫停在某個位置 =不能省掉。 若省掉起始地址,則以當前CS:IP作為起始地址。 默認段地址在段寄存器CS中。,4. 寄存器顯示和修改命令R,格式1:R 顯示所有寄存器內(nèi)容和全部標志的狀態(tài)。 格式2:R 寄存器名 顯示和修改寄
25、存器內(nèi)容,若不修改其內(nèi)容,則按CR鍵;若要修改,可輸入修改后的14個16進制字符值,再按CR 鍵。 格式3:R F 顯示FLAGS寄存器并接受新值。,5. 跟蹤程序命令TQ,格式1:T=起始地址 單步執(zhí)行程序,在指令執(zhí)行中逐條進行跟蹤,若省去地址,則從CS:IP現(xiàn)行值執(zhí)行。 格式2:T=起始地址指令條數(shù) 可對多條指令進行跟蹤。 注意:對于INT指令不能使用T命令跟蹤。,,,-A 匯編命令(輸入程序) 格式:A 地址 -N 文件命名命令 格式:N 文件名 -L 裝入命令 格式:L 地址 驅動器 扇區(qū)號 扇區(qū)數(shù) L 地址,,-W 寫命令 格式:W 地址 驅動器
26、扇區(qū)號 區(qū)段數(shù) W 地址 -E 修改內(nèi)存單元內(nèi)容 格式1:E 地址 內(nèi)容表 用給定的內(nèi)容表去代替指定范圍的內(nèi)存單元的內(nèi)容 格式2:E 地址 可連續(xù)逐個修改內(nèi)存單元的內(nèi)容。按CR鍵結束E命令 -H 十六進制運算命令 格式:H val1 val2 輸出為val1+val2 val1-val2,,-M 移動命令 格式:M range address -Q 退出命令 格式:-Q 該命令退出DEBUG程序,并返回到DOS -?查看命令格式 格式:-? 顯示全部DEBUG命令格式,2.4 常用的DOS命令,MD 建立目錄 E: MD MASM 建立MASM
27、目錄 CD 顯示或改變當前目錄 E: CD 顯示當前目錄 E: CD MASM 進入MASM目錄 E: MASM CD.. 退到上一目錄 E: MASM CD 退到根目錄E:,,RD 刪除目錄 E: RD MASM 刪除MASM目錄 DIR 顯示目錄或文件 E: DIR 列出當前目錄下的子目錄和文件 E: DIR *.ASM 列出所有擴展名為ASM的文件, *為通配符 E: DIR HELLO.* 列出所有名為HELLO而擴展名 不限的文件 E: DIR HE*.??? 列出所有名前兩個字符為HE, 而擴展名為三個字符的文件
28、,,REN 改變文件名 E: REN H1.TXT H2.TXT COPY 復制文件 E: COPY H1.TXT H2.TXT E: COPY A+B C.TXT,,TYPE 顯示文本文件的內(nèi)容 E: TYPY H1.TXT CLS 清屏 SET PATH設置或顯示可執(zhí)行文件的搜索路徑 E: PATH 顯示可執(zhí)行文件的搜索路徑 E: SET PATH 顯示可執(zhí)行文件的搜索路徑,,HELP 顯示命令格式和用法 E: HELP 顯示所有命令的格式 E: HELP DIR 顯示DIR命令的用法 輸出的重定向 E: DIR C.TXT 把DIR顯示結果輸出到
29、文件 C.TXT,2.5 幾個常用的DOS系統(tǒng)功能調(diào)用,21H號中斷是DOS提供給用戶的用于調(diào)用系統(tǒng)功能的中斷,它有近百個功能供用戶選擇使用,主要包括設備管理、目錄管理和文件管理三個方面的功能。 匯編語言程序設計需要采用系統(tǒng)的各種功能程序。,功能調(diào)用的格式,通常按照如下4個步驟進行: 在AH寄存器中設置系統(tǒng)功能調(diào)用號 在指定寄存器中設置入口參數(shù) 執(zhí)行指令INT 21H,實現(xiàn)中斷服務程序的功能調(diào)用 根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況,1. 鍵盤輸入一個字符并回顯,DOS功能調(diào)用INT 21H 功能號:AH01H 出口參數(shù):AL輸入字符的ASCII碼 功能:等待從鍵盤輸入一個字符,該字符的A
30、SCII碼送AL,并送屏幕顯示。 調(diào)用此功能時,若無輸入,則會一直等待,直到輸入后才繼續(xù)。,,mov ah,01h;功能號:ah01h int 21h;功能調(diào)用 cmp al,Y;處理出口參數(shù)al je yeskey;是“Y” cmp al,N je nokey;是“N” yeskey:... nokey:...,2. 顯示一個字符,DOS功能調(diào)用INT 21H 功能號:AH02H 入口參數(shù):DL輸出字符 功能:在顯示器當前光標位置顯示給定的字符,光標右移一個字符位置。,,在當前顯示器光標位置顯示一個問號 mov ah,02h;設置功能號:ah02h mov dl,?;提供入口參數(shù):dl
31、? int 21h ;DOS功能調(diào)用:顯示問號,3. 顯示字符串,DOS功能調(diào)用INT 21H 功能號:AH09H 入口參數(shù):DS:DX欲顯示字符串在主存中的首地址;字符串應以$(24H)結束 功能:顯示由DS:DX指定的字符串,,string db Hello,Everybody! $ ;在數(shù)據(jù)段定義要顯示的字符串 ... mov ah,09h ;設置功能號 ah09h mov dx, offset string;提供入口參數(shù) dx字符串的偏移地址 int 21h ;DOS功能調(diào)用字符串顯示,4. 鍵盤輸入到緩沖區(qū),DOS功能調(diào)用INT 21H 功能號:AH0AH 入
32、口參數(shù):DS:DX緩沖區(qū)首地址 (DS:DX)緩沖區(qū)字節(jié)數(shù) 功能:輸入到緩沖區(qū),緩沖區(qū)的定義,第1字節(jié)事先填入最多欲接收的字符個數(shù)(包括回車字符,可以是1255) 第2字節(jié)將存放實際輸入的字符個數(shù)(不包括回車符) 第3字節(jié)開始將存放輸入的字符串 實際輸入的字符數(shù)多于定義數(shù)時,多出的字符丟掉,且響鈴,,bufferdb 81 ;定義緩沖區(qū) ;第1個字節(jié)填入可能輸入的 最大字符數(shù) db ? ;存放實際輸入的字符數(shù) db 81 dup(?) ;存放輸入的字符串 ... mov dx, seg buffer;偽指令seg取得buffer的段地址 mov ds, d
33、x;設置數(shù)據(jù)段DS mov dx, offset buffer mov ah, 0ah int 21h,5. 寫文件或設備,DOS功能調(diào)用INT 21H 功能號:AH40H 入口參數(shù):DS:DX數(shù)據(jù)區(qū)首地址 BX=文件代號 CX=寫入的字節(jié)數(shù) 功能:把數(shù)據(jù)區(qū)內(nèi)容輸出到文件或設備,,MOV AH,40H ;設置功能號 AH40H LEA DX,STR ;設置數(shù)據(jù)區(qū)首地址 MOV BX,1;文件代號1表示標準設備顯示器 MOV CX,9;輸出9個字節(jié) INT 21H ;,6. 結束程序返回DOS,DOS功能調(diào)用INT 21H 功能號:AH4CH 入口參數(shù): AL返回碼 功能:結束程
34、序返回DOS MOV AH,4CH INT 21H,第三章 指令系統(tǒng)和尋址方式,3.1 尋址方式 3.2 指令系統(tǒng) 3.3 80386后繼機型的新增擴展指令和尋址方式,3.1 尋址方式,3.1.1 指令結構 3.1.2 操作數(shù)的尋址方式,,計算機中的指令由操作碼和操作數(shù)組成。 操作數(shù)字段可以有一個、兩個或三個,通常稱為一地址、二地址或三地址指令。 二地址指令中兩個操作數(shù)分別稱為源操作數(shù)和目的操作數(shù)。 所謂尋址方式就是指令中尋找操作數(shù)的方式。,3.1.1 指令結構,80 x86匯編語言指令的一般格式位: 標號: 指令助記符 操作數(shù) ;注釋 中的內(nèi)容位可選項。,,標號:符號地址,表示指令在內(nèi)存
35、中的位置。標號后應加冒號:。 指令助記符:指令名稱,是指令功能的英文縮寫。 操作數(shù):指令要操作的數(shù)據(jù)或數(shù)據(jù)所在的地址。寄存器,常量,變量,表達式。 注釋:每行以分號“;”開頭,匯編程序不處理。,3.1.2 操作數(shù)的尋址方式,立即尋址方式 操作數(shù)就在指令中,緊跟在操作碼之后,操作數(shù)作為指令的一部分存放在代碼段。 例 MOV AL, 5H 執(zhí)行完此條指令后(AL)=05H MOV AX, 3064H,,注意:,執(zhí)行時無需去內(nèi)存取數(shù),因此稱為立即數(shù)。 主要用于寄存器賦初值。 立即數(shù)只能作為源操作數(shù),并且長度與目的操作數(shù)一致。,,寄存器尋址方式 操作數(shù)就是寄存器中的值。指令中給出寄存器名。
36、 例 MOV AL, BL MOV AX, BX MOV AL, BX 錯 MOV AX, BL 錯,注意:,以上兩種尋址方式都與存儲器無關。 以下各種尋址方式的操作數(shù)都在存儲器中。 偏移地址也稱為有效地址(EA)。,,直接尋址方式 操作數(shù)的有效地址EA就在指令中。機器默認段地址在DS中。,,例 3.4 例 3.5 例 3.6,,寄存器間接尋址方式 操作數(shù)的有效地址在寄存器中,只允許使用BX、BP、SI和DI寄存器。 物理地址=16d x (DS) + (BX) 物理地址=16d x (DS) + (SI ) 物理地址=16d x (DS) + (DI )
37、物理地址=16d x (SS) + (BP),,例 3.7,,寄存器相對尋址方式 操作數(shù)的有效地址是寄存器和位移量之和。 位移量可以是8位/16位的常量,也可以是16 位的符號地址。 只允許使用BX、BP、SI和DI寄存器。 默認搭配和寄存器間接尋址方式一樣。 例3.8,,,MOV AX, COUNTSI MOV AX, COUNT+SI 當COUNT 為16位位移量的符號地址時: 如 DS=3000H, SI=2000H, COUNT=4000H ; (36000H)=34H,(36001H)=12H 物理地址=16d x (段值) + EA =30000H+2000H
38、+4000H=36000H,,基址變址尋址方式 操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器內(nèi)容之和。 物理地址=16d x (DS) + (BX) + (SI) 物理地址=16d x (DS) + (BX) + (DI) 物理地址=16d x (SS) + (BP) + (SI) 物理地址=16d x (SS) + (BP) + (DI),,,相對基址變址尋址方式 操作數(shù)的有效地址是一個基址寄存器和一個變址寄存器以及一個位移量之和。 基址寄存器BX和BP,變址寄存器SI和DI。 默認段寄存器搭配和寄存器間接尋址方式一樣。 例3.10,,注意,雙操作數(shù)指令的兩個操作數(shù)中
39、,只能有一個使用存儲器尋址方式。 雙操作數(shù)指令的兩個操作數(shù),長度須匹配。 操作數(shù)的有效地址前可以加段跨越前綴,但在以下三種情況下不允許: 串處理指令的目的串必須用ES段 PUSH指令的目的和POP指令的源必須用SS段 指令必須存放在CS段,3.2 指令系統(tǒng),3.2.1 數(shù)據(jù)傳送指令 3.2.2 類型擴展指令 3.2.3 算術運算指令 3.2.4 邏輯指令 3.2.5 移位指令 3.2.6 串操作指令 3.2.7 程序轉移指令 3.2.8 處理器控制指令,,8086指令系統(tǒng)可以分為八組: (1)數(shù)據(jù)傳送指令 (2)類型擴展指令 (3)算術運算指令 (4)邏輯指令 (5)移位指
40、令 (6)串操作指令 (7)程序轉移指令 (8)處理機控制指令,3.2.1 數(shù)據(jù)傳送指令,通用數(shù)據(jù)傳送指令 累加器專用傳送指令 地址傳送指令 標志寄存器傳送,1. 通用數(shù)據(jù)傳送指令,MOV 傳送 PUSH 進棧 POP 出棧 XCHG 交換,(1)MOV傳送指令,格式: MOV DST, SRC 操作: (DST)(SRC) DST 表示目的操作數(shù), SRC 表示源操作數(shù)。 功能:將源操作數(shù)傳送到目的操作數(shù)。,雙操作數(shù)指令的規(guī)定,源操作數(shù)與目的操作數(shù)的長度必須一致。 源操作數(shù)與目的操作數(shù)不能同時為存儲器。 目的操作數(shù)不能為CS和IP,因為CS:
41、IP是程序當前地址。,,例3.11 例3.12 例3.13 例3.14 例3.15 例3.16,(2)PUSH 進棧指令,格式: PUSH SRC 操作: (SP)(SP)-2 (( SP)+1,(SP))(SRC) 堆棧:后進先出內(nèi)存區(qū),以字為單位傳送,SS:SP總是指向棧頂。 例3.17,(3)POP出棧指令,格式: POP DST 操作: (DST)((SP)+1,(SP)) (SP)(SP)+2 例3.18,(4)XCHG交換指令,格式: XCHG OPR1, OPR2 操作: (OPR1) (OPR2) 功能:把兩個操作數(shù)互換位置。 遵循雙操作數(shù)指令的規(guī)定,但操作數(shù)不
42、能為立即數(shù)。 例3.19,,2. 累加器專用傳送指令,IN ;從I/O端口輸入 OUT ;向I/O端口輸出 XLAT ;換碼 其中I/O端口是CPU 與外設傳送數(shù)據(jù)的接口,單獨編址,不屬于內(nèi)存,端口地址范圍0000FFFFH.這組指令只限于AX,AL累加器。,(1)IN輸入指令,長格式:IN AL,PORT(字節(jié)) ;00FFH IN AX,PORT(字) 操作:AL(PORT) AX(PORT) 功能:把端口PORT的數(shù)據(jù)輸入到累加器。,,短格式:IN AL,DX(字節(jié)) ; PORT放入DX IN AX,DX(字) 操作:AL((DX)) AX ((DX)
43、) 功能:把DX指向的端口的數(shù)據(jù)輸入到累加器。,,例3.20 例3.21,(2)OUT輸出指令,長格式:OUT PORT,AL (字節(jié)) ;00-FFH OUT PORT,AX (字) 操作:PORT AL PORT AX 功能:把累加器的數(shù)據(jù)輸出到端口PORT。,,短格式:OUT DX,AL (字節(jié)) ;0000-FFFFH OUT DX,AX (字) 操作: (DX) AL (DX) AX 功能:把累加器的數(shù)據(jù)輸出到DX指向的端口。 例3.22,(3)XLAT換碼指令,格式:XLAT 操作:AL(BX+AL) 功能:把BX+AL的值作為有效地址,取出其中的一個字
44、節(jié)送AL。 例3.23,3. 地址傳送指令,LEA 有效地址送寄存器 LDS 指針送寄存器和DS LES 指針送寄存器和ES,(1)LEA有效地址送寄存器指令,格式:LEA REG,SRC 操作:REGSRC 功能:把源操作數(shù)的有效地址EA送到指定的寄存器。 例3.24 例3.25,(2)LDS指針送寄存器和DS指令,格式: LDS REG, SRC 操作:REG(SRC) DS(SRC+2) 功能:把源操作數(shù)SRC所指向的內(nèi)存單元中的兩個字送到指定的寄存器REG和DS。 例3.26,(3)LES指針送寄存器和ES指令,格式: LES REG, SRC 操作:REG(SRC)
45、 ES(SRC+2) 功能:把源操作數(shù)SRC所指向的內(nèi)存單元中的兩個字送到指定的寄存器REG和ES。 例如 LES DI, 10H DS=C000H, (C0010H)=0180H, (C0012H)=2000H 結果 DI=0180H, ES=2000H,4. 標志寄存器傳送指令,LAHF 標志寄存器FLAGS的低字節(jié)送AH SAHF AH送FLAGS的低字節(jié) PUSHF 標志進棧 POPF 標志出棧 以上傳送類指令均不影響標志位,除SAHF, POPF 外.,3.2.2 類型擴展指令,CBW:AL 擴展為 AX CWD:AX 擴展為 DX,AX 擴展方法為符號擴展。 例3.2
46、8 例3.29,3.2.3 算術運算指令,加法指令 減法指令 乘法指令 除法指令,1. 加法指令,ADD 加法 ADC 帶進位加法 INC 加1,(1)ADD加法指令,格式:ADD DST,SRC 操作:(DST) (DST) + (SRC) 例3.30,溢出判斷,以8位二進制數(shù)為例,,,綜上所述,CF=1 為無符號數(shù)的溢出,OF=1為有符號數(shù)的溢出. OF位:若兩個操作數(shù)的符號相同,而結果的符號與之相反時OF=1,否則OF=0。 CF位:有進位/借位時CF=1,否則CF=0。,(2)ADC帶進位加法指令,格式:ADC DST,SRC 操作:(DST)(DST)+(SRC)
47、+CF 例3.31,,(3)INC 加1指令,格式:INC OPR 操作:(OPR)(OPR)+1,,除 INC 不影響CF,它們都影響條件標志位. 條件標志位(條件碼) 最主要有: 進位CF, 零ZF, 符號SF, 溢出OF,2. 減法指令,SUB 減法 SBB 帶借位減法 DEC 減1 NEG 求補 CMP 比較,(1)SUB 減法指令,格式:SUB DST,SRC 操作:(DST) (DST) -(SRC),(2)SBB 帶借位減法指令,格式:SBB DST,SRC 操作:(DST) (DST) -(SRC)-CF,(3) DEC 減1指令,格式:DEC OP
48、R 操作:(OPR)(OPR)-1,(4) NEG 求補指令,格式:NEG OPR 操作:(OPR)-(OPR) 功能:對OPR求補,求- OPR, 即反碼+1. 只有OPR為0時,CF=0。,(5) CMP 比較指令,格式:CMP OPR1, OPR2 操作:(OPR1)-(OPR2) 不回送結果,只產(chǎn)生標志位。,,CF=1 為無符號數(shù)溢出,OF=1 為有符號數(shù)溢出. 例3.32 例3.33 例3.34 例3.35,3. 乘法指令,MUL 無符號數(shù)乘法 IMUL 有符號數(shù)乘法,(1)MUL 無符號數(shù)乘法指令,格式: MUL SRC 操作: 操作數(shù)為字節(jié)時: (AX) (AL) X (SR
49、C) 操作數(shù)為字時: (DX,AX) (AX) X (SRC),(2)IMUL 帶符號數(shù)乘法指令,格式: IMUL SRC 操作: 操作數(shù)為字節(jié)時: (AX) (AL) X (SRC) 操作數(shù)為字時: (DX,AX) (AX) X (SRC),,兩個相乘的數(shù)必須長度相同。 SRC不能是立即數(shù)。 例3.36,4. 除法指令,DIV 無符號數(shù)除法 IDIV 有符號數(shù)除法,(1)DIV 無符號數(shù)除法指令,(2)IDIV 帶符號數(shù)除法指令,格式: IDIV SRC 操作與DIV 相同 余數(shù)和被除數(shù)同符號。 被除數(shù)長度應為除數(shù)長度的兩倍。 SRC不能是立即數(shù)。 例3.37 例3.38,算術運算
50、綜合舉例,例3.39,5. 十進制調(diào)整指令,前面提到的所有算術運算指令都是二進制數(shù)的運算,為便于十進制計算,計算機提供了十進制調(diào)整指令,在二進制數(shù)計算的基礎上,給予十進制調(diào)整,直接得到十進制結果。,,BCD碼 (Binary Coded Decimal):用二進制編碼表示十進制數(shù). 四位二進制數(shù)表示一位十進制數(shù),由于四位二進制數(shù)的權分別為8,4,2,1,所以又稱為8421碼.,,壓縮的BCD碼 4位二進制數(shù)表示一位十進制數(shù)。 非壓縮的BCD碼 8位二進制數(shù)表示一位十進制數(shù),低4位為8421碼,高4位無意義。,(1) 壓縮BCD碼調(diào)整指令,DAA ; 加法十進制調(diào)整指令 DAS ; 減法十進制調(diào)
51、整指令,,DAA ;加法十進制調(diào)整指令 格式:DAA 操作: IF CF=1 or AL高4位是AF THEN AL+60H. IF AF=1 or AL低4位是AF THEN AL+6,,例 ADD AL, BL 0000 1001 9 DAA + 0000 0100 4 0000 1101 13 + 0110 0001 0011 BCD碼9+4的結果是(10011)BCD即13,,,? DAA 使AL自動+6 IF 每位BCD碼值 9 THEN 該位值加6 例
52、3.40 BCD1=1834,BCD2=2789 求: BCD3<-- BCD1+BCD2 0001 1000 0011 0100 1834 0010 0111 1000 1001 2789 0011 1111 1011 1101 4623 0110 0110 0110 1 1 1 0100 0110 0010 0011 4623,,DAS ;減法十進制調(diào)整指令 格式:DAS 操作: IF AF=1 OR AL低4位是AF THEN
53、 AL-6 IF CF=1 OR AL高4位是AF THEN AL-60H.,,例 SUB AL, AH DAS AL=86H=86(BCD), AH=07H=07(BCD) SUB 即 86H-07H=7FH DAS 即 7FH-6H=79H=79(BCD),(2) 非壓縮BCD碼調(diào)整指令,AAA ;加法ASCII調(diào)整 AAS ;減法ASCII調(diào)整 AAM ;乘法ASCII調(diào)整 AAD ;除法ASCII調(diào)整,,AAA ;加法的ASCII調(diào)整指令 格式:AAA 操作:IF AL低4位是AF THEN AL+6; AL高4位置0,調(diào)整產(chǎn)生的進位加到AH中。 例3.42,,AA
54、S ;減法的ASCII調(diào)整指令 格式:AAS 操作:IF AL低4位是AF THEN AL-6; AL高4位置0,調(diào)整產(chǎn)生的借位從AH中減去。,,AAM ;乘法的ASCII調(diào)整指令 格式:AAM 操作:先作乘法,把兩個一字節(jié)且高4位為0的非壓縮BCD碼相乘,然后用AAM指令把AX中的內(nèi)容調(diào)整為二字節(jié)非壓縮BCD碼格式。,,例: MUL AL, BL AAM AL=07H BL=09H MUL 使 AL=3FH, AH=0 AAM 使 AH=06H, AL=03H 3X16+15=48+15=63,,AAD ;除法的ASCII調(diào)整指令 格式:AAD 操作:反向調(diào)整,先作調(diào)整指令AAD,
55、 把AX中兩個一字節(jié)且高4位為0的非壓縮BCD碼調(diào)整為二進制數(shù),然后使用除法指令除以一個字節(jié)的且高4位為0的非壓縮BCD碼. 例3.43,3.2.4 邏輯指令,AND ;與 OR ;或 NOT ;非 XOR ;異或 TEST ;測試, 執(zhí)行AND操作, 但不保存結果,只根據(jù)其特征置標志位。,,按位操作,至少一個操作數(shù)是寄存器。 例3.44 例3.45 例3.46 例3.47,3.2.5 移位指令,SHL ;邏輯左移 , SAL ;算術左移,,SHR ;邏輯右移,,SAR ;算術右移,,ROL ;循環(huán)左移 ,,,ROR ;循環(huán)右移 ,,,RCL ;帶進位循環(huán)左移,,,RCR
56、 ;帶進位循環(huán)右移,,格式:SHL OPR, CNT CNT可以是1或CL寄存器,如需移位的次數(shù)大于1,則可以在該移位指令前把移位次數(shù)先送到CL寄存器。,,算術移位指令適用于帶符號數(shù)運算,SAL用來乘以2,SAR用來除以2;邏輯移位指令適用于無符號數(shù)運算,SHL用來乘以2,SHR用來除以2。 例3.48 例3.49,3.2.6 串操作指令,MOVS ;串傳送 CMPS ;串比較 SCAS ;串掃描 LODS ;從串取 STOS ;存入串,,串操作指令每次處理的是字節(jié)或字,因此需要重復執(zhí)行串操作指令才能處理完一個數(shù)據(jù)串。 串操作指令通常需要和以下前綴配合使用: REP
57、重復 REPE / REPZ 相等或為零則重復 REPNE / REPNZ 不相等或不為零則重復,,REP的作用 重復執(zhí)行串操作指令,直到CX=0為止. 串操作指令每執(zhí)行一次,使CX自動減1.,,REPE/REPZ的作用 當CX0 并且 ZF=1時,重復執(zhí)行串操作指令,直到CX=0 或者 ZF=0為止. 串操作指令每執(zhí)行一次,使CX自動減1.,,REPNE/REPNZ的作用 當CX0 并且 ZF=0時,重復執(zhí)行串操作指令,直到CX=0 或者 ZF=1為止. 串操作指令每執(zhí)行一次,使CX自動減1.,(1)MOVS串傳送指令,格式有3種: MOVS DST, SRC ;操作數(shù)尋址方式固
58、定 MOVSB ;字節(jié) MOVSW ;字,,字節(jié)操作: (ES:DI)(DS:SI), SI=SI1, DI=DI1 字操作: (ES:DI)(DS:SI), SI=SI2, DI=DI2 當方向標志DF=0,用+,DF=1,用-,實現(xiàn)整個串傳送的準備工作,SI=源串首地址(如反向傳送則是末地址). DI=目的串首地址(如反向傳送則是末地址). CX=串長度. 設置方向標志DF.,,設置方向標志DF: CLD 設置正向 (DF=0,向前,地址自動增量) STD 設置反向 (DF=1,向后,地址自動減量) 例3.50,(2)CMPS串比較指令,格式有3種: CMPS SRC,
59、DST ;操作數(shù)尋址方式固定 CMPSB ;字節(jié) CMPSW ;字,,字節(jié)操作: (ES:DI)-(DS:SI), SI=SI1, DI=DI1 字操作: (ES:DI)-(DS:SI), SI=SI2, DI=DI2 當方向標志DF=0,用+,DF=1,用- 指令不保存結果,只是根據(jù)結果設置標志位。 例3.51,(3)SCAS串掃描指令,格式有3種: SCAS DST ;操作數(shù)尋址方式固定 SCASB ;字節(jié) SCASW ;字,,字節(jié)操作: AL-(ES:DI), DI=DI1 字操作: AX-(ES:DI), DI=DI2 當方向標志DF=0,用+,DF=1
60、,用- 指令不保存結果,只是根據(jù)結果設置標志位。 例3.52,(4)STOS存入串指令,格式有3種: STOS DST ;操作數(shù)尋址方式固定 STOSB ;字節(jié) STOSW ;字,,字節(jié)操作: (ES:DI)AL, DI=DI1 字操作: (ES:DI)AX, DI=DI2 當方向標志DF=0,用+,DF=1,用-,,例3.53 mov ax,ext mov es,ax lea di,mess mov cx,9 mov ax,0 cld rep stosw,(5)LODS從串取指令,格式有3種: LODS SRC ;操作數(shù)尋址方式固定 LODSB ;字節(jié) LODSW ;字,
61、,字節(jié)操作: AL(DS:SI), SI=SI1 字操作: AX(DS:SI), SI=SI2 當方向標志DF=0,用+,DF=1,用- 指令一般不和REP連用。,3.2.7 程序轉移指令,無條件轉移指令 條件轉移指令 循環(huán)指令 子程序調(diào)用指令 中斷調(diào)用指令,1. 無條件轉移指令,JMP 跳轉指令:無條件轉移到指令指定的地址去執(zhí)行程序。 轉移的目標地址和本跳跳轉指令在同一個代碼段,則為段內(nèi)轉移;否則是段間轉移。 轉移的目標地址在跳轉指令中直接給出,則為直接轉移;否則是間接轉移。,(1)段內(nèi)直接轉移,格式: JMP NEAR PTR OPR 操作: IPIP+16位位移量 NEAR PTR為
62、目標地址OPR的屬性說明,表明是一個近(段內(nèi))跳轉,通常可以省略。 位移量是帶符號數(shù),IP的值可能減小(程序向后跳),也可能增加(程序向前跳)。 程序的重新定位并不影響程序的正確執(zhí)行。,(2)段內(nèi)間接轉移,格式: JMP WORD PTR OPR 操作: IP(EA) 可以使用除立即數(shù)以外的任何一種尋址方式。 例3.54,(3)段間直接轉移,格式: JMP FAR PTR OPR 操作: IPOPR的偏移地址 CSOPR所在段的段地址,(4)段間間接轉移,格式: JMP DWORD PTR OPR 操作: IP(EA) CS(EA+2) 可以使用除立即數(shù)和寄存器方式以外的任何一種尋
63、址方式。 例3.55,2. 條件轉移指令,條件轉移指令根據(jù)上一條指令所設置的標志位來判別測試條件,從而決定程序轉向。 通常在使用條件轉移指令之前,應有一條能產(chǎn)生標志位的前導指令,如CMP指令。 匯編指令格式中,轉向地址由標號表示。 所有的條件轉移指令都不影響標志位。,,第一組: 根據(jù)單個條件標志的設置情況轉移 第二組: 測試CX寄存器的值為0則轉移 第三組: 比較兩個無符號數(shù),根據(jù)結果轉移 第四組: 比較兩個有符號數(shù), 根據(jù)結果轉移,根據(jù)單個條件標志的設置情況轉移,JZ (JE) 結果為零轉移 格式: JZ OPR 測試條件:ZF=1 JNZ (JNE) 結果不為零轉移 格式: JNZ
64、OPR 測試條件:ZF=0 JS 結果為負轉移 格式: JS OPR 測試條件:SF=1,,JNS OPR 結果不為負(為正)轉移 測試條件:SF=0 JO OPR 結果溢出轉移 測試條件:OF=1 JNO OPR 結果不溢出轉移 測試條件:OF=0 JP (JPE) 奇偶位為1轉移 格式: JP OPR 測試條件:PF=1,,JNP (JPO) 奇偶位為0轉移 格式: JNP OPR 測試條件:PF=0 JB (JNAE,JC) 低于,(不高于等于,進位位為1),則轉移. 格式: JB OPR 測試條件:CF=1 JNB (JAE,JNC) 不低于,(高于等于,進位
65、位為0),則轉移. 格式: JNB OPR 測試條件:CF=0,測試CX寄存器的值為0則轉移,格式: JCXZ OPR 測試條件:CX=0,比較兩個無符號數(shù),根據(jù)結果轉移,JB (JNAE,JC) 低于,(不高于或等于,進位位為1),則轉移. 格式: JB OPR 測試條件:CF=1 JNB (JAE,JNC) 不低于,(高于等于,進位位為0),則轉移. 格式: JNB OPR 測試條件:CF=0 JBE (JNA) 低于或等于,(不高于),則轉移. 格式: JBE OPR 測試條件:CF OR ZF=1 JNBE (JA) 不低于或等于,(高于),則轉移. 格式: JNBE
66、 OPR 測試條件:CF OR ZF=0,比較兩個帶符號數(shù),根據(jù)結果轉移,JL (JNGE) 小于,(不大于等于),則轉移. = 格式: JNL OPR 測試條件:SF XOR OF=0 JLE (JNG) 小于等于,(不大于),則轉移. 格式: JNLE OPR 測試條件:(SF XOR OF) OR ZF=0,,****************************************************** 為何針對有符號數(shù)和無符號數(shù)須用不同指令? 8位二進制數(shù)FFH 和 00H ,哪個大? 若為無符號數(shù), FFH大,若為有符號數(shù),00H大. ******************************************************,3. 循環(huán)指令,LOOP 循環(huán) LOOPZ / LOOPE 為零或相等時循患 LOOPNZ / LOOPNE 不為零或不相等時循環(huán),,指令:LOOP OPR 測試條件:CX 0,則循環(huán) 指令:LOOPZ / LOOPE OPR 測試條件:ZF=1 AND CX0 ,則循環(huán) 指令:LOOPNZ
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。