吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

匯編語言的變量與編碼是什么

汽車電子技術 ? 來源:嵌入式悅翔園 ? 作者:JamesBin ? 2023-02-17 14:58 ? 次閱讀

匯編語言采用了助記符號編寫程序,通過編譯器轉換成能夠被計算機識別和處理的二進制代碼程序。

一、編程語言介紹

機器語言是用二進制代碼表示的,能被計算機直接識別和執行的一種機器指令的集合。直觀性和通用性都很差

匯編語言采用了助記符號編寫程序,通過編譯器轉換成能夠被計算機識別和處理的二進制代碼程序。匯編語言仍然是面向機器的語言,編程煩瑣費時,通用性也差。

高級語言用與自然語言接近的代碼編寫程序,通過編譯器轉換成二進制代碼程序。高級語言易學易用,通用性好。C語言是一種結構化的高級編程語言,在單片機系統開發中得到了廣泛應用。

1.數制的基與權

:各計數制中每個數位上可用字符的個數。

:數字“1”在數字不同的數位所代表的數值。

二進制基數為2( 0和1),權為以2為底的冪。二進制數字后面用B表示

十進制基數為10(0-9),權是以10為底的冪。十進制用D(或不加標志)表示十進制數

十六進制基數為16(0-9以及A-F),權是以16為底的冪。十六進制用H表示十六進制數。

圖片

進制轉換此處略,往上方法有很多,大家根據自己情況選個適合自己的即可

例5 將十進制數500.03125轉換為十六進制數

解:

圖片

因此可得:500.03125=1F4.08H

十六進制數與二進制數之間的轉換

整數部分由小數點向左每4位一組,若整數最高位的一組不足4位,則在其左邊加0補足4位;

小數部分由小數點向右每4位一組,若小數最低位的一組不足4位,則在其右邊加0補足4位;

用與每組二進制數所對應的十六進制數取代每組的4位二進制數即可轉換為十六進制。

將十六進制數轉換為二進制數時,過程相反。

例6:將十六進制數9F4.1H轉換為二進制數

解:將每位十六進制數寫為二進制數

圖片

可得: 9F4.1H = 100111110100.0001B

二、編碼

編碼是計算機為輸入處理字母、數字和符號等組成的信息,依靠輸入設備先把要輸入的字符按一定格式編成的二進制代碼。

目前國際上使用的字符編碼是ASCII碼(Americanstandard coded for information interchange,美國信息交換標準碼)。

ASCII碼用一個字節來表示一個字符,采用7位二進制代碼來對字符進行編碼,最高位一般用做校驗位,因此共128個,包括32個通用控制符號、10個阿拉伯數字、52個英文大寫和小寫字母及34個專用符號。

三、變量與運算符

數字0-9的ASCII碼為30H-39H,英文大寫字母A-Z的ASCII碼為41H-5AH

數據可分為常量和變量。常量是數值和字符等不能改變的量,可以不經說明和定義直接使用,而變量是在程序運行過程中可以根據需要改變的量,在引用之前必須定義類型。

C51 定義一個變量的格式如下:

數據類型 [存儲類型] 變量名表

其中“數據類型”和“存儲類型”的先后次序可以互換。

表4-1Cx51支持的數據類型

圖片

四、變量類型

bit 、sfr、 sfr16 和sbit是 Keil C51中新增的變量類型。

(1**)bit**用來定義位變量,值只能是0或1。位變量位于8051單片機內部RAM位尋址區(20H~2FH),共為16字節,最多可定義128個位變量。

(2**)sfr**用于定義特殊功能寄存器變量。該變量存儲在片內的特殊功能寄存器存儲區中,用來對特殊功能寄存器進行讀寫操作。

例如:51頭文件中有定義sfr P0=0x90,這一語句定義了P0端口在片內的寄存器,在程序中可以使用P0對該端口寄存器進行操作。

(3)sfr16也用于定義特殊功能寄存器,所不同的是它用于操作占兩個字節的特殊功能寄存器。

例如:sfr16DPTR=0x82語句定義了片內16位數據指針寄存器DPTR,其低8位字節地址為82H,高8位字節地址為83H,在程序中可以對DPTR進行操作。

(4)sbit用于定義特殊功能寄存器位變量,用來對特殊功能寄存器的可位尋址位進行讀寫操作。

例如sbit P0_0=P0^0 定義了特殊功能寄存器P0的第0位,后面對該位的操作可用P0_0代替。符號^后面的數字定義特殊功能寄存器可尋址位在寄存器中的位置,取值必須是0-7。

五、儲存類型

Cx51存儲類型

圖片

1.片內存儲區

(1)data將變量存儲在片內可直接尋址的數據存儲器DATA區中。DATA區位于片內RAM的低128字節(0X00~0X7F)。

使用data存儲模式,目標代碼中對變量的訪問速度最快,把經常使用的變量放在DATA區可提高程序運行速度。

若定義i為存儲類型為data的無符號字符型數據,可聲明為:unsigned char data i

(2) bdata用于將變量定義在數據存儲器可位尋址的BDATA區,允許位與字節混合訪問。uBDATA區位于單片機內部RAM字節地址0x20~0x2F的16個字節中,每個字節8位,共計16x8=128個可尋址位。u例如如下聲明后可用位變量value0訪問字節value的0位:

unsigned char bdata value;

bit value0=value^0;

若value的原值為0x00,欲將value的第0位置為1,可采用按字節訪問方式“value=0x01”實現,也可以按位尋址方式“value0=1”實現。

(3)idata將變量存儲在片內間接尋址的數據存儲區IDATA區中。IDATA區使用指針來進行尋址和訪問。

51內核單片機RAM僅有128個字節,因此無間接尋址數據存儲器區,idata與data無區別。52內核單片機RAM有256個字節,當片內128字節的直接尋址數據存儲區不夠用時,可以使用128字節間接尋址數據存儲區,訪問速度較data慢一些。

2.片外存儲區

xdata將變量存儲在片外數據存儲器中,采用16位地址,可以訪問外部數據存儲區64KB內的任何地址。

pdata將變量存儲在片外數據存儲器中的第一頁(地址00H~FFH)中,存儲空間為256字節。對PDATA區尋址,只需要裝入8位地址,而對XDATA區尋址要裝入16位地址,因此對PDATA區的尋址要比對XDATA區尋址快。

pdata和xdata存儲類型的變量由于需要訪問外存,訪問速度最慢,應盡量減少對變量的訪問次數。這兩種類型適合保存原始數據或最終結果,需要頻繁訪問的中間結果應盡量不用或少用。

3.程序存儲器ROM

code將變量存儲在程序存儲器中,變量只能讀不能寫,因此適合存儲常量或查表類的數組數據,不能用于存儲程序運行過程中需要修改的變量。如果想改變變量值,只能在程序中修改后重新將程序燒寫進ROM中。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7536

    瀏覽量

    88638
  • 匯編語言
    +關注

    關注

    14

    文章

    410

    瀏覽量

    35957
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49283
收藏 人收藏

    評論

    相關推薦

    匯編語言程序設計pdf

    匯編語言程序設計的內容:每種高級語言程序在連接為可執行程序之前,都必須被編譯為匯編語言程序,因此對于高級語言程序設計者來說,了解編譯器如何生成匯編語
    發表于 10-21 17:38 ?0次下載
    <b class='flag-5'>匯編語言</b>程序設計pdf

    匯編語言程序設計下載

    professional assembly language 匯編語言程序設計本書分為三部分。第一部分講解匯編語言程序設計環境基礎,第二部分研究匯編語言程序設計,最后一部分講解高級匯編語言
    發表于 10-21 17:42 ?0次下載
    <b class='flag-5'>匯編語言</b>程序設計下載

    DSP匯編語言編程基礎

    DSP匯編語言編程基礎 一、  實驗目的 1、了解 DSP 的尋址方式; 2、了解 DSP 的匯編語言與 C語言混合編程。 二、  實驗器材 1、安裝有 CCS的 PC
    發表于 02-11 09:41 ?207次下載

    匯編語言自學教程

    匯編語言自學教程 匯編語言(AssemblyLanguage)是面向機器的程序設計語言。在匯編語合中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label
    發表于 03-15 14:24 ?511次下載

    匯編語言程序結構

    實 驗   匯編語言程序結構 一、實驗目的 1.掌握匯編語言程序上機過程。    2.掌握匯編語言結構。
    發表于 09-28 23:11 ?2896次閱讀

    匯編語言詳解

    匯編語言(Assembly Language)是面向機器的程序設計語言。   匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器
    發表于 06-30 10:28 ?4186次閱讀

    Linux中的匯編語言

    在閱讀Linux源代碼時,你可能碰到一些匯編語言片段,有些匯編語言出現在以.S為擴展名的匯編文件中,在這種文件中,整個程序全部由匯編語言組成。有些
    發表于 04-07 20:43 ?55次下載

    Assemble匯編語言設計技術

    匯編語言 設計程序,是所有程序語言的基本資源。我們不管你使用除匯編語言或指令代碼以外的程序語言編程,僅僅是編程表達、編程規則和變成環境的變化,但是這些變化都是基于匯
    發表于 07-07 15:47 ?0次下載

    ARM匯編語言官方手冊(中文)

    ARM匯編語言官方手冊(中文)匯編語言ARM匯編語言官方手冊(中文)
    發表于 12-28 15:02 ?212次下載

    匯編語言

    匯編語言舉例,比如讀寄存器內容的源代碼、匯編語言制作的光帶菜單及源程序、獲得操作系統版本的匯編源代碼等
    發表于 12-31 10:40 ?33次下載

    匯編語言學習課件_匯編語言程序組織

    第四章 匯編語言程序組織 4.1 匯編語言語句格式 4.2 匯編語言源程序結構 4.3 常用偽指令 4.4 匯編語言操作符 4.5
    發表于 12-31 10:41 ?0次下載

    匯編語言學習課件_匯編語言高級編程技巧

    第八章 匯編語言高級編程技巧 8.1 模塊化程序設計 8.2 匯編語言程序與高級語言程序的連接 8.3 使用DOS EXEC功能執行程序 8.4 TSR程序設計
    發表于 12-31 10:41 ?0次下載

    匯編語言程序設計自學教程

    匯編語言程序設計自學教程,幫助自學者掌握匯編語言的自行設計與編程。
    發表于 04-06 15:47 ?41次下載

    高級語言匯編語言_機器語言的區別

    本文首先介紹了高級語言的優缺點、匯編語言的優缺點及使用匯編語言的理由,其次介紹了機器語言的優缺點,最后闡述了高級語言
    的頭像 發表于 04-16 10:28 ?3w次閱讀

    神經元匯編語言參考

    神經元匯編語言參考
    發表于 07-04 20:47 ?0次下載
    神經元<b class='flag-5'>匯編語言</b>參考
    百家乐官网扑克牌耙| 百家乐最好的玩法| 马德里百家乐的玩法技巧和规则| 百家乐官网玩法秘决| 百家乐是如何出千的| 大发888 充值| 百家乐官网英皇娱乐场开户注册| 大发888官方下载网站| 百家乐官网美国玩法| 海尔百家乐的玩法技巧和规则| 百家乐官网怎么玩能赢钱| 百家乐佛泰阁| 百家乐官网稳赚打法| 百家乐稳赢秘诀教学| 网上百家乐官网开户送现金| 怎么玩百家乐的玩法技巧和规则| 百家乐官网博彩资讯论坛| 威尼斯人娱乐城打造| 上市百家乐官网评论| 大发888ber| 百家乐官网永利娱乐| 娱乐城金赞| 百家乐三珠连跳打法| 百家乐官网游戏官网| 红桃K百家乐娱乐城| 真人百家乐官网蓝盾| 棋牌评测网站| 澳门百家乐公试打法| 泰来百家乐官网导航| 百家乐娱乐平台备用网址| 真钱百家乐官网开户试玩| 新全讯网网址g5vvv| 手机百家乐官网能兑换现金棋牌游戏| 京城娱乐城开户| 百家乐上分器定位器| 真钱百家乐官网开户试玩| 百家乐开户导航| 百家乐官网斗地主| k7娱乐| 旧金山百家乐的玩法技巧和规则 | 威尼斯人娱乐城信誉最好|