精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
匯編語言指令
匯編語言指令
 更新時間:2008-7-26 19:38:12  點(diǎn)擊數(shù):3
【字體: 字體顏色

指令系統(tǒng)確定了CPU所能完成的功能,是用匯編語言進(jìn)行程序設(shè)計的最基本部分。如果不熟悉匯編指令的功能及其有關(guān)規(guī)定,那么,肯定不能靈活運(yùn)用匯編語言。所以,本章的內(nèi)容是學(xué)習(xí)本課程的重點(diǎn)和難點(diǎn)。
5.1 
匯編語言指令格式
為了介紹指令系統(tǒng)中指令的功能,先要清楚匯編語言是如何書寫指令的,這就象在學(xué)習(xí)高級語言程序設(shè)計時,要清楚高級語言語句的語義、語法及其相關(guān)規(guī)定一樣。
5.1.1 
指令格式
匯編語言的指令格式如下:
指令助憶符 [操作數(shù)1 [, 操作數(shù)2 [, 操作數(shù)3]]]   [;注釋]
指令助憶符體現(xiàn)該指令的功能,它對應(yīng)一條二進(jìn)制編碼的機(jī)器指令。指令的操作數(shù)個數(shù)由該指令的確定,可以沒有操作數(shù),也可以有一個、二個或三個操作數(shù)。絕大多數(shù)指令的操作數(shù)要顯式的寫出來,但也有指令的操作數(shù)是隱含的,不需要在指令中寫出。
當(dāng)指令含有操作數(shù),并要求在指令中顯式地寫出來時,則在書寫時必須遵守:
指令助憶符和操作數(shù)之間要有分隔符,分隔符可以是若干個空格或TAB鍵;
如果指令含有多個操作數(shù),那么,操作數(shù)之間要用逗號""分開。 
指令后面還可以書寫注釋內(nèi)容,不過,要在注釋之前書寫分號";"
5.1.2 
了解指令的幾個方面
學(xué)習(xí)匯編指令時,指令的功能無疑是我們學(xué)習(xí)和掌握的重點(diǎn),但要準(zhǔn)確、有效地運(yùn)用這些指令,我們還要熟悉系統(tǒng)對每條指令的一些規(guī)定或約束。
歸納起來,對指令還要掌握以下幾個方面內(nèi)容:
、要求指令操作數(shù)的尋址方式;
、指令對標(biāo)志位的影響、標(biāo)志位對指令的影響;
、指令的執(zhí)行時間,對可完成同樣功能的指令,要選用執(zhí)行時間短的指令

 

 

 

匯編指令系統(tǒng)

指令系統(tǒng)是CPU指令的集合,CPU除了具有計算功能的指令外,還有實(shí)現(xiàn)其它功能的指令,也有為某種特殊的應(yīng)用而增設(shè)的指令。
通常,把指令按其功能分成以下幾大類:
數(shù)據(jù)傳送指令 
標(biāo)志位操作指令 
算術(shù)運(yùn)算指令 
邏輯運(yùn)算指令 
移位操作指令 
位操作指令 
比較運(yùn)算指令 
下面,我們逐一介紹每類指令中的指令。循環(huán)指令 
轉(zhuǎn)移指令 
條件設(shè)置字節(jié)指令 
字符串操作指令 
ASCII-BCD
碼運(yùn)算調(diào)整指令 
處理器指令 


5.2.1 
數(shù)據(jù)傳送指令 
數(shù)據(jù)傳送指令又分為:傳送指令、交換指令、地址傳送指令、堆棧操作指令、轉(zhuǎn)換指令和I/O指令等。
除了標(biāo)志位操作指令SAHFPOPF指令外,本類的其它指令都不影響標(biāo)志位。
1、傳送指令MOV(Move Instruction)
傳送指令是使用最頻繁的指令,它相對于高級語言里的賦值語句。指令的格式如下:
MOV  Reg/Mem, Reg/Mem/Imm
其中:Reg—Register(寄存器)Mem—Memory(存儲器),Imm—Immediate(立即數(shù)),它們可以是8位、16位或32(特別指出其位數(shù)的除外)。在本網(wǎng)絡(luò)課件的網(wǎng)頁中,都將采用上述縮寫,此后不再說明。
指令的功能是把源操作數(shù)(第二操作數(shù))的值傳給目的操作數(shù)(第一操作數(shù))。指令執(zhí)行后,目的操作數(shù)的值被改變,而源操作數(shù)的值不變。在存儲單元是該指令的一個操作數(shù)時,該操作數(shù)的尋址方式可以是任意一種存儲單元尋址方式。
下面列舉幾組正確的指令例子:
源操作數(shù)是寄存器
MOV  CH, ALMOV  BP, SPMOV  ECX, EBX
MOV  DS, AXMOV  [BX], CHMOV  [BX+SI], AX
源操作數(shù)是存儲單元
MOV  AL, [100H]MOV  BX, ES:[DI]MOV  EDX, [BX]
MOV  BX, VARWMOV  AX, [BX+SI]MOV  CH, [BX+DI+100H]
其中:VARW是字類型內(nèi)存變量(下同)
源操作數(shù)是立即數(shù)
MOV  AL, 89HMOV  BX, -100HMOV  EDX, 12345678H
MOV  VARW, 200HMOV  [BX], 2345HMOV  [BX+DI], 1234H

在匯編語言中,主要的數(shù)據(jù)傳送方式如圖5.1所示。雖然一條MOV指令能實(shí)現(xiàn)其中大多數(shù)的數(shù)據(jù)傳送方式,但也存在MOV指令不能實(shí)現(xiàn)的傳送方式。

5.1 MOV指令數(shù)據(jù)傳送示意圖
MOV指令有以下幾條具體規(guī)定,其中有些規(guī)定對其它指令也同樣有效。
1)
、兩個操作數(shù)的數(shù)據(jù)類型要相同,要同為8位、16位或32位;如:MOV  BL, AX等是不正確的;
2)
、兩個操作數(shù)不能同時為段寄存器,如:MOV  ES, DS等;
3)
、代碼段寄存器CS不能為目的操作數(shù),但可作為源操作數(shù),如:指令MOV  CS, AX等不正確,但指令MOV  AX, CS等是正確的;
4)
、立即數(shù)不能直接傳給段寄存器,如:MOV  DS, 100H等;
5)
、立即數(shù)不能作為目的操作數(shù),如:MOV  100H, AX等;
6)
、指令指針IP,不能作為MOV指令的操作數(shù);
7)
、兩個操作數(shù)不能同時為存儲單元,如:MOV  VARA, VARB等,其中VARAVARB是同數(shù)據(jù)類型的內(nèi)存變量。

對于規(guī)定2、47,我們可以用通用寄存器作為中轉(zhuǎn)來達(dá)到最終目的。表5.1列舉一個可行的解決方案,盡供參考。讀者可考慮用其它辦法來完成同樣的功能。
5.1 MOV指令的變通方法 
功能描述不正確的指令可選的解決方法
DS的值傳送給ESMOV  ES, DSMOV  AX, DS
MOV  ES, AX
100H傳給DSMOV  DS, 100HMOV  AX, 100H
MOV  DS, AX
把字變量VARB的值傳送給字變量VARAMOV  VARA, VARBMOV  AX, VARB
MOV  VARA, AX

對于情況1:不同位數(shù)數(shù)據(jù)之間的傳送問題,在80386及其以后的CPU中,增加一組新的指令——傳送-填充指令,它可把位數(shù)少的源操作數(shù)傳送給位數(shù)多的目的操作數(shù),多出的部分按指令的規(guī)定進(jìn)行填充。

 

 

傳送填充指令(MOVe-and-Fill Instruction)

2、傳送填充指令(MOVe-and-Fill Instruction)
傳送填充指令是把位數(shù)短的源操作數(shù)傳送給位數(shù)長的目的操作數(shù)。指令格式如下:
MOVSX/MOVZX  Reg/Mem, Reg/Mem/Imm
     ;80386+
其中:80386+表示80386及其之后的CPU,其它類似符號含義類同,不再說明。
指令的主要功能和限制與MOV指令類似,不同之處是:在傳送時,對目的操作數(shù)的高位進(jìn)行填充。根據(jù)其填充方式,又分為:符號填充和零填充。
傳送填充指令的功能如圖5.2所示。
 
(a). MOVSX
的執(zhí)行效果 
(b). MOVZX
的執(zhí)行效果

5.2 傳送填充指令執(zhí)行過程示意圖
、符號填充指令MOVSX(Move with Sign-Extend)
MOVSX
的填充方式是:用源操作數(shù)的符號位來填充目的操作數(shù)的高位數(shù)據(jù)位。
、零填充指令MOVZX(Move with Zero-Extend)
MOVZX
的填充方式是:恒用0來填充目的操作數(shù)的高位數(shù)據(jù)位。
5.1 已知:AL=87H,指令MOVSX  CX, ALMOVZX  DX, AL執(zhí)行后,問CXDX的值是什么?
解:根據(jù)傳送-填充指令的填充方式可知:
指令MOVSX CX, AL執(zhí)行后,(CX)=0FF87H,指令MOVZX DX, AL執(zhí)行后,(DX)=0087H。
從上例可看出,兩條指令的源操作數(shù)完全一樣,但因?yàn)樗鼈兊奶畛浞绞讲煌,所得到的結(jié)果而就不同。
試比較下列指令,分析它們執(zhí)行結(jié)果的相同和不同之處:
MOV
 AX, 87H   MOVSX AX, 87H   MOVZX AX, 87H
3
、交換指令XCHG(Exchange Instruction)
交換指令XCHG是兩個寄存器,寄存器和內(nèi)存變量之間內(nèi)容的交換指令,兩個操作數(shù)的數(shù)據(jù)類型要相同。其指令格式如下:
XCHG  Reg/Mem, Reg/Mem
該指令的功能和MOV指令不同,后者是一個操作數(shù)的內(nèi)容被修改,而前者是兩個操作數(shù)都會發(fā)生改變。寄存器不能是段寄存器,兩個操作數(shù)也不能同時為內(nèi)存變量。
XCHG
指令的功能如圖5.3所示。
5.3 XCHG指令的執(zhí)行功能示意圖

5.2 已知:AX=5678HBX=1234H,指令XCHG  AX, BX執(zhí)行后,AXBX的值是什么?
解:這是兩個寄存器內(nèi)容進(jìn)行交換,指令執(zhí)行后,有:(AX)=1234H,(BX)=5678H。

 

 

 

HTTP協(xié)議狀態(tài)碼的含義

"100" : Continue
"101" : witching Protocols
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information
"204" : No Content
"205" : Reset Content
"206" : Partial Content
"300" : Multiple Choices
"301" : MOVed Permanently
"302" : Found
"303" : See Other
"304" : Not Modified
"305" : Use Proxy
"307" : Temporary Redirect
"400" : Bad Request
"401" : Unauthorized
"402" : Payment Required
"403" : Forbidden
"404" : Not Found
"405" : Method Not Allowed
"406" : Not Acceptable
"407" : Proxy Authentication Required
"408" : Request Time-out
"409" : Conflict
"410" : Gone
"411" : Length Required
"412" : Precondition Failed
"413" : Request Entity Too Large
"414" : Request-URI Too Large
"415" : Unsupported Media Type
"416" : Requested range not satisfiable
"417" : Expectation Failed
"500" : Internal Server Error
"501" : Not Implemented
"502" : Bad Gateway
"503" : Service Unavailable
"504" : Gateway Time-out
"505" : HTTP Version not supported

  • 上一篇: DS18B20數(shù)字溫度計使用(2)
  • 下一篇: 51單片機(jī)教程 第四課
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
    托克托县| 北票市| 中方县| 梁河县| 武宁县| 紫金县| 出国| 崇明县| 滦平县| 邮箱| 永定县| 萍乡市| 阿克苏市| 洛扎县| 琼结县| 邵阳市| 买车| 广饶县| 麻江县| 漠河县| 江北区| 广汉市| 道真| 吉木萨尔县| 申扎县| 海淀区| 阜平县| 东莞市| 尼木县| 汉源县| 河池市| 孝义市| 三河市| 乌兰浩特市| 四会市| 姚安县| 鲁甸县| 毕节市| 桂林市| 信阳市| 金乡县|