一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

匯編語(yǔ)言的變量與編碼是什么

汽車電子技術(shù) ? 來(lái)源:嵌入式悅翔園 ? 作者:JamesBin ? 2023-02-17 14:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

匯編語(yǔ)言采用了助記符號(hào)編寫(xiě)程序,通過(guò)編譯器轉(zhuǎn)換成能夠被計(jì)算機(jī)識(shí)別和處理的二進(jìn)制代碼程序。

一、編程語(yǔ)言介紹

機(jī)器語(yǔ)言是用二進(jìn)制代碼表示的,能被計(jì)算機(jī)直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。直觀性和通用性都很差

匯編語(yǔ)言采用了助記符號(hào)編寫(xiě)程序,通過(guò)編譯器轉(zhuǎn)換成能夠被計(jì)算機(jī)識(shí)別和處理的二進(jìn)制代碼程序。匯編語(yǔ)言仍然是面向機(jī)器的語(yǔ)言,編程煩瑣費(fèi)時(shí),通用性也差。

高級(jí)語(yǔ)言用與自然語(yǔ)言接近的代碼編寫(xiě)程序,通過(guò)編譯器轉(zhuǎn)換成二進(jìn)制代碼程序。高級(jí)語(yǔ)言易學(xué)易用,通用性好。C語(yǔ)言是一種結(jié)構(gòu)化的高級(jí)編程語(yǔ)言,在單片機(jī)系統(tǒng)開(kāi)發(fā)中得到了廣泛應(yīng)用。

1.數(shù)制的基與權(quán)

:各計(jì)數(shù)制中每個(gè)數(shù)位上可用字符的個(gè)數(shù)。

權(quán) :數(shù)字“1”在數(shù)字不同的數(shù)位所代表的數(shù)值。

二進(jìn)制基數(shù)為2( 0和1),權(quán)為以2為底的冪。二進(jìn)制數(shù)字后面用B表示

十進(jìn)制基數(shù)為10(0-9),權(quán)是以10為底的冪。十進(jìn)制用D(或不加標(biāo)志)表示十進(jìn)制數(shù)

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

圖片

進(jìn)制轉(zhuǎn)換此處略,往上方法有很多,大家根據(jù)自己情況選個(gè)適合自己的即可

例5 將十進(jìn)制數(shù)500.03125轉(zhuǎn)換為十六進(jìn)制數(shù)

解:

圖片

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

十六進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換

整數(shù)部分由小數(shù)點(diǎn)向左每4位一組,若整數(shù)最高位的一組不足4位,則在其左邊加0補(bǔ)足4位;

小數(shù)部分由小數(shù)點(diǎn)向右每4位一組,若小數(shù)最低位的一組不足4位,則在其右邊加0補(bǔ)足4位;

用與每組二進(jìn)制數(shù)所對(duì)應(yīng)的十六進(jìn)制數(shù)取代每組的4位二進(jìn)制數(shù)即可轉(zhuǎn)換為十六進(jìn)制。

將十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),過(guò)程相反。

例6:將十六進(jìn)制數(shù)9F4.1H轉(zhuǎn)換為二進(jìn)制數(shù)

解:將每位十六進(jìn)制數(shù)寫(xiě)為二進(jìn)制數(shù)

圖片

可得: 9F4.1H = 100111110100.0001B

二、編碼

編碼是計(jì)算機(jī)為輸入處理字母、數(shù)字和符號(hào)等組成的信息,依靠輸入設(shè)備先把要輸入的字符按一定格式編成的二進(jìn)制代碼。

目前國(guó)際上使用的字符編碼是ASCII碼(Americanstandard coded for information interchange,美國(guó)信息交換標(biāo)準(zhǔn)碼)。

ASCII碼用一個(gè)字節(jié)來(lái)表示一個(gè)字符,采用7位二進(jìn)制代碼來(lái)對(duì)字符進(jìn)行編碼,最高位一般用做校驗(yàn)位,因此共128個(gè),包括32個(gè)通用控制符號(hào)、10個(gè)阿拉伯?dāng)?shù)字、52個(gè)英文大寫(xiě)和小寫(xiě)字母及34個(gè)專用符號(hào)。

三、變量與運(yùn)算符

數(shù)字0-9的ASCII碼為30H-39H,英文大寫(xiě)字母A-Z的ASCII碼為41H-5AH

數(shù)據(jù)可分為常量和變量。常量是數(shù)值和字符等不能改變的量,可以不經(jīng)說(shuō)明和定義直接使用,而變量是在程序運(yùn)行過(guò)程中可以根據(jù)需要改變的量,在引用之前必須定義類型。

C51 定義一個(gè)變量的格式如下:

數(shù)據(jù)類型 [存儲(chǔ)類型] 變量名表

其中“數(shù)據(jù)類型”和“存儲(chǔ)類型”的先后次序可以互換。

表4-1Cx51支持的數(shù)據(jù)類型

圖片

四、變量類型

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

(1**)bit**用來(lái)定義位變量,值只能是0或1。位變量位于8051單片機(jī)內(nèi)部RAM位尋址區(qū)(20H~2FH),共為16字節(jié),最多可定義128個(gè)位變量。

(2**)sfr**用于定義特殊功能寄存器變量。該變量存儲(chǔ)在片內(nèi)的特殊功能寄存器存儲(chǔ)區(qū)中,用來(lái)對(duì)特殊功能寄存器進(jìn)行讀寫(xiě)操作。

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

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

例如:sfr16DPTR=0x82語(yǔ)句定義了片內(nèi)16位數(shù)據(jù)指針寄存器DPTR,其低8位字節(jié)地址為82H,高8位字節(jié)地址為83H,在程序中可以對(duì)DPTR進(jìn)行操作。

(4)sbit用于定義特殊功能寄存器位變量,用來(lái)對(duì)特殊功能寄存器的可位尋址位進(jìn)行讀寫(xiě)操作。

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

五、儲(chǔ)存類型

Cx51存儲(chǔ)類型

圖片

1.片內(nèi)存儲(chǔ)區(qū)

(1)data將變量存儲(chǔ)在片內(nèi)可直接尋址的數(shù)據(jù)存儲(chǔ)器DATA區(qū)中。DATA區(qū)位于片內(nèi)RAM的低128字節(jié)(0X00~0X7F)。

使用data存儲(chǔ)模式,目標(biāo)代碼中對(duì)變量的訪問(wèn)速度最快,把經(jīng)常使用的變量放在DATA區(qū)可提高程序運(yùn)行速度。

若定義i為存儲(chǔ)類型為data的無(wú)符號(hào)字符型數(shù)據(jù),可聲明為:unsigned char data i

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

unsigned char bdata value;

bit value0=value^0;

若value的原值為0x00,欲將value的第0位置為1,可采用按字節(jié)訪問(wèn)方式“value=0x01”實(shí)現(xiàn),也可以按位尋址方式“value0=1”實(shí)現(xiàn)。

(3)idata將變量存儲(chǔ)在片內(nèi)間接尋址的數(shù)據(jù)存儲(chǔ)區(qū)IDATA區(qū)中。IDATA區(qū)使用指針來(lái)進(jìn)行尋址和訪問(wèn)。

51內(nèi)核單片機(jī)RAM僅有128個(gè)字節(jié),因此無(wú)間接尋址數(shù)據(jù)存儲(chǔ)器區(qū),idata與data無(wú)區(qū)別。52內(nèi)核單片機(jī)RAM有256個(gè)字節(jié),當(dāng)片內(nèi)128字節(jié)的直接尋址數(shù)據(jù)存儲(chǔ)區(qū)不夠用時(shí),可以使用128字節(jié)間接尋址數(shù)據(jù)存儲(chǔ)區(qū),訪問(wèn)速度較data慢一些。

2.片外存儲(chǔ)區(qū)

xdata將變量存儲(chǔ)在片外數(shù)據(jù)存儲(chǔ)器中,采用16位地址,可以訪問(wèn)外部數(shù)據(jù)存儲(chǔ)區(qū)64KB內(nèi)的任何地址。

pdata將變量存儲(chǔ)在片外數(shù)據(jù)存儲(chǔ)器中的第一頁(yè)(地址00H~FFH)中,存儲(chǔ)空間為256字節(jié)。對(duì)PDATA區(qū)尋址,只需要裝入8位地址,而對(duì)XDATA區(qū)尋址要裝入16位地址,因此對(duì)PDATA區(qū)的尋址要比對(duì)XDATA區(qū)尋址快。

pdata和xdata存儲(chǔ)類型的變量由于需要訪問(wèn)外存,訪問(wèn)速度最慢,應(yīng)盡量減少對(duì)變量的訪問(wèn)次數(shù)。這兩種類型適合保存原始數(shù)據(jù)或最終結(jié)果,需要頻繁訪問(wèn)的中間結(jié)果應(yīng)盡量不用或少用。

3.程序存儲(chǔ)器ROM

code將變量存儲(chǔ)在程序存儲(chǔ)器中,變量只能讀不能寫(xiě),因此適合存儲(chǔ)常量或查表類的數(shù)組數(shù)據(jù),不能用于存儲(chǔ)程序運(yùn)行過(guò)程中需要修改的變量。如果想改變變量值,只能在程序中修改后重新將程序燒寫(xiě)進(jìn)ROM中。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7647

    瀏覽量

    90488
  • 匯編語(yǔ)言
    +關(guān)注

    關(guān)注

    14

    文章

    412

    瀏覽量

    36727
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1659

    瀏覽量

    50064
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    匯編語(yǔ)言程序設(shè)計(jì)pdf

    匯編語(yǔ)言程序設(shè)計(jì)的內(nèi)容:每種高級(jí)語(yǔ)言程序在連接為可執(zhí)行程序之前,都必須被編譯為匯編語(yǔ)言程序,因此對(duì)于高級(jí)語(yǔ)言程序設(shè)計(jì)者來(lái)說(shuō),了解編譯器如何生成匯編語(yǔ)
    發(fā)表于 10-21 17:38 ?0次下載
    <b class='flag-5'>匯編語(yǔ)言</b>程序設(shè)計(jì)pdf

    匯編語(yǔ)言程序設(shè)計(jì)下載

    professional assembly language 匯編語(yǔ)言程序設(shè)計(jì)本書(shū)分為三部分。第一部分講解匯編語(yǔ)言程序設(shè)計(jì)環(huán)境基礎(chǔ),第二部分研究匯編語(yǔ)言程序設(shè)計(jì),最后一部分講解高級(jí)匯編語(yǔ)言
    發(fā)表于 10-21 17:42 ?0次下載
    <b class='flag-5'>匯編語(yǔ)言</b>程序設(shè)計(jì)下載

    DSP匯編語(yǔ)言編程基礎(chǔ)

    DSP匯編語(yǔ)言編程基礎(chǔ) 一、  實(shí)驗(yàn)?zāi)康?1、了解 DSP 的尋址方式; 2、了解 DSP 的匯編語(yǔ)言與 C語(yǔ)言混合編程。 二、  實(shí)驗(yàn)器材 1、安裝有 CCS的 PC
    發(fā)表于 02-11 09:41 ?207次下載

    匯編語(yǔ)言自學(xué)教程

    匯編語(yǔ)言自學(xué)教程 匯編語(yǔ)言(AssemblyLanguage)是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)合中,用助記符(Memoni)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label
    發(fā)表于 03-15 14:24 ?511次下載

    匯編語(yǔ)言程序結(jié)構(gòu)

    實(shí) 驗(yàn)   匯編語(yǔ)言程序結(jié)構(gòu) 一、實(shí)驗(yàn)?zāi)康?nbsp;1.掌握匯編語(yǔ)言程序上機(jī)過(guò)程。    2.掌握匯編語(yǔ)言結(jié)構(gòu)。
    發(fā)表于 09-28 23:11 ?3024次閱讀

    匯編語(yǔ)言詳解

    匯編語(yǔ)言(Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。   匯編語(yǔ)言中,用助記符(Memoni)代替操作碼,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替地址碼。這樣用符號(hào)代替機(jī)器
    發(fā)表于 06-30 10:28 ?4364次閱讀

    Linux中的匯編語(yǔ)言

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

    Assemble匯編語(yǔ)言設(shè)計(jì)技術(shù)

    匯編語(yǔ)言 設(shè)計(jì)程序,是所有程序語(yǔ)言的基本資源。我們不管你使用除匯編語(yǔ)言或指令代碼以外的程序語(yǔ)言編程,僅僅是編程表達(dá)、編程規(guī)則和變成環(huán)境的變化,但是這些變化都是基于匯
    發(fā)表于 07-07 15:47 ?0次下載

    ARM匯編語(yǔ)言官方手冊(cè)(中文)

    ARM匯編語(yǔ)言官方手冊(cè)(中文)匯編語(yǔ)言ARM匯編語(yǔ)言官方手冊(cè)(中文)
    發(fā)表于 12-28 15:02 ?214次下載

    匯編語(yǔ)言

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

    匯編語(yǔ)言學(xué)習(xí)課件_匯編語(yǔ)言程序組織

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

    匯編語(yǔ)言學(xué)習(xí)課件_匯編語(yǔ)言高級(jí)編程技巧

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

    匯編語(yǔ)言程序設(shè)計(jì)自學(xué)教程

    匯編語(yǔ)言程序設(shè)計(jì)自學(xué)教程,幫助自學(xué)者掌握匯編語(yǔ)言的自行設(shè)計(jì)與編程。
    發(fā)表于 04-06 15:47 ?42次下載

    高級(jí)語(yǔ)言匯編語(yǔ)言_機(jī)器語(yǔ)言的區(qū)別

    本文首先介紹了高級(jí)語(yǔ)言的優(yōu)缺點(diǎn)、匯編語(yǔ)言的優(yōu)缺點(diǎn)及使用匯編語(yǔ)言的理由,其次介紹了機(jī)器語(yǔ)言的優(yōu)缺點(diǎn),最后闡述了高級(jí)語(yǔ)言
    的頭像 發(fā)表于 04-16 10:28 ?3.1w次閱讀

    神經(jīng)元匯編語(yǔ)言參考

    神經(jīng)元匯編語(yǔ)言參考
    發(fā)表于 07-04 20:47 ?0次下載
    神經(jīng)元<b class='flag-5'>匯編語(yǔ)言</b>參考