freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

【大學(xué)課件】80c51單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)ppt(已改無錯(cuò)字)

2022-08-29 16:21:05 本頁(yè)面
  

【正文】 表格可以 被 多個(gè) 程序塊使用。 編寫查表程序時(shí),首先把表的首地址送入 DPTR中,再將要查表的數(shù)據(jù)序號(hào)(或下標(biāo)值)送入 A中,然后就可以使用該指令進(jìn)行查表操作,并把結(jié)果送 A中。 常用于 “本地”范圍 查表(數(shù)據(jù)表格只能放在該指令后面 256個(gè)地址單元之內(nèi),而且表格只能被本程序使用)。 編寫查表程序時(shí),首先把查表數(shù)據(jù)的序號(hào)送入 A中,再把從查表指令的下一條指令的首地址到表的首地址間的偏移量與 A值相加,然后再使用該指令進(jìn)行查表操作,并把結(jié)果送入 A中。 ORG 1000H 1000H SQR: MOV A, 30H; A←x 1002H PUSH DPH; 現(xiàn)場(chǎng)保護(hù) 1004H PUSH DPL; 1006H MOV DPTR, TAB1; DPTR← 表首地址 TAB1 1009H MOVC A, @A+DPTR; 查表得 y 100AH MOV 40H, A; 40H←y 100CH POP DPL; 現(xiàn)場(chǎng)恢復(fù) 100EH POP DPH; 1010H RET 1011H TAB1: DB 00H, 01H, 04H, 09H, 10H, 19H DB 24H, 31H, 40H, 51H 例:設(shè)計(jì)一個(gè)子程序,其功能為根據(jù) x的內(nèi)容( 0~ 9之間)查平方表,求出相應(yīng)的結(jié)果 y( y=x2)。假設(shè) x的內(nèi)容已存放在內(nèi)部 RAM 30H單元中,求出 y的內(nèi)容存放在內(nèi)部 RAM 40H單元中。 上例中 , 如果使用 MOVC A, @A+PC指令 , 則 編程如下: ORG 1000H 1000H SQR: MOV A, 30H; A←x 1002H PUSH DPH; 現(xiàn)場(chǎng)保護(hù) 1004H PUSH DPL; 1006H ADD A, 07H; 加偏移量 1008H MOVC A, @A+PC; 查表得 y 1009H MOV 40H, A; 40H←y 100BH POP DPL; 現(xiàn)場(chǎng)恢復(fù) 100DH POP DPH; 100FH RET 1010H TAB1: DB 00H, 01H, 04H, 09H, 10H, 19H DB 24H, 31H, 40H, 51H 此題中,偏移量 =1010H1009H=07H 編輯: 編寫程序的過程。 匯編語(yǔ)言源程序: 用匯編語(yǔ)言編寫的程序稱為匯編語(yǔ)言源程序。 匯編: 匯編語(yǔ)言源程序不能在單片機(jī)中直接執(zhí)行,必須將其“翻譯”為用二進(jìn)制代碼 (機(jī)器語(yǔ)言 )表示的目標(biāo)程序才能執(zhí)行。這個(gè)“翻譯”過程稱為匯編 。 單片機(jī)匯編語(yǔ)言源程序的編輯和匯編 手工編程與匯編 手工匯編 : 先把程序用助記符指令寫出,然后通過查指令代碼表,逐個(gè)把助記符指令“翻譯”成機(jī)器碼,最后再把機(jī)器碼的程序輸入單片機(jī),進(jìn)行調(diào)試和運(yùn)行。通常把這種 查表翻譯指令 的方法稱為手工匯編。 由于手工編程是按絕對(duì)地址進(jìn)行定位的,所以手工匯編時(shí)要根據(jù)轉(zhuǎn)移的目標(biāo)地址計(jì)算轉(zhuǎn)移指令的偏移量,不但 麻煩而且容易出錯(cuò) 。 機(jī)器編輯與交叉匯編 機(jī)器編輯: 是指借助于微型機(jī)或開發(fā)系統(tǒng)進(jìn)行單片機(jī)的程序設(shè)計(jì),通常都是使用編輯軟件進(jìn)行源程序的編輯。編輯完成后,生成一個(gè)由匯編指令和偽指令構(gòu)成的擴(kuò)展名為“ .ASM”的 ASCII碼文件。 機(jī)器匯編: 由計(jì)算機(jī)完成從匯編語(yǔ)言源程序到機(jī)器語(yǔ)言目標(biāo)程序的“翻譯”工作。 交叉匯編: 是指使用一種計(jì)算機(jī)的匯編程序?yàn)榱硪环N計(jì)算機(jī)的源程序進(jìn)行匯編,即運(yùn)行匯編程序進(jìn)行匯編的是一種計(jì)算機(jī),而匯編得到的目標(biāo)程序是另一種計(jì)算機(jī)的。 單片機(jī)只能采用機(jī)器交叉匯編的方法對(duì)匯編語(yǔ)言程序進(jìn)行匯編 在微型機(jī)或開發(fā)系統(tǒng)上采用交叉匯編方法對(duì)源程序進(jìn)行 匯編。交叉匯編后,再使用串行通信,把匯編得到的目標(biāo)程 序傳送到單片機(jī),進(jìn)行程序調(diào)試和運(yùn)行??梢姡?機(jī)器編輯 → 交叉匯編 → 串行傳送 ”的過程構(gòu)成了單片機(jī)軟件設(shè)計(jì)的 “三步曲”,全過程如圖所示。 單片機(jī)匯編語(yǔ)言程序生成過程 對(duì)匯編語(yǔ)言程序進(jìn)行機(jī)器交叉匯編時(shí),必須告訴計(jì)算機(jī)的匯編程序應(yīng)該 如何完成匯編工作 ,這一任務(wù)就是通過使用 偽指令 來實(shí)現(xiàn)的。 偽指令 是程序 設(shè)計(jì)人 員 發(fā)給匯編程序 的指令,也稱匯編命令或匯編程序控制指令。 它具有控制匯編程序的輸入輸出、定義數(shù)據(jù)和符號(hào)、條件匯編、分配存儲(chǔ)空間等功能。 ? 偽指令沒有與之相對(duì)應(yīng)的二進(jìn)制機(jī)器代碼, ? 不同匯編語(yǔ)言的偽指令也有所不同。 ? 手工匯編不需要偽指令,但機(jī)器交叉匯編必須使用偽指令。 在對(duì)匯編語(yǔ)言程序進(jìn)行機(jī)器交叉匯編前,偽指令存在于匯編語(yǔ)言程序中,但 匯編后得到的機(jī)器代碼程序中不存在偽指令相對(duì)應(yīng)的二進(jìn)制機(jī)器代碼 ,這一點(diǎn)請(qǐng)?zhí)貏e注意。 80C51單片機(jī)匯編語(yǔ)言偽指令 ORG( ORiGin) 本命令總出現(xiàn)在匯編語(yǔ)言源程序的開頭位置,用于 規(guī)定目標(biāo)程序的起始地址 ,即此命令后面的程序或數(shù)據(jù)塊的起始地址。 命令格式 : [〈 標(biāo)號(hào): 〉 ] ORG 〈 地址 〉 在匯編語(yǔ)言程序的開始,通常都用一條 ORG偽指令來規(guī)定程序的起始地址,如果不用 ORG規(guī)定,則匯編得到的目標(biāo)程序?qū)?000H開始。 選擇項(xiàng) 通常為 16位絕對(duì)地址,但也可以使用標(biāo)號(hào)或表達(dá)式表示 例: ORG 8000H START: MOV A, 00H; ┇ 即規(guī)定標(biāo)號(hào) START代表地址 8000H, 目標(biāo)程序的第一條指令從 8000H開始。 2. 匯編終止命令 END( END of assembly) ? 該命令用于終止源程序的匯編工作。 END是匯編語(yǔ)言源程序的結(jié)束標(biāo)志,因此,在整個(gè)匯編語(yǔ)言源程序中只能有一個(gè) END指令,且位于程序的最后。如果END命令出現(xiàn)在程序中間,則在 END之后的指令,匯編程序?qū)⒉挥杼幚怼? ? 命令格式為: [標(biāo)號(hào) : ] END [表達(dá)式 ] [表達(dá)式 ]是選擇項(xiàng),只有主程序模塊才有; [標(biāo)號(hào) : ]也是選擇項(xiàng),當(dāng)源程序?yàn)橹鞒绦驎r(shí)才具有,其值為主程序第一條指令的符號(hào)地址 3. 賦值命令 EQU( EQUate) 該命令用于給字符名稱賦值。賦值后,其值在整個(gè)程序中有效。 命令格式為: 字符名稱 EQU 賦值項(xiàng) 其中 賦值項(xiàng) 可以是常數(shù)、地址、標(biāo)號(hào)或表達(dá)式。其值為 8位或 16位二進(jìn)制數(shù)。賦值以后的字符名稱既可以作地址使用,也可以作立即數(shù)使用。 例: HOUR EQU 30H ORG 1000H START: MOV HOUR, 40H; 等同于 START: MOV 30H, 40H; ( Define Byte)定義數(shù)據(jù)字節(jié)命令 本命令用于從指定的地址單元開始,在程序存儲(chǔ)器的連續(xù)單元中定義字節(jié)數(shù)據(jù)。常使用本命令存放數(shù)據(jù)表格。 命令格式: [〈 標(biāo)號(hào): 〉 ]DB〈 8位數(shù)表 〉 例如: DB “how are you?” DB 2,4,6,10,11,17 例:存放 7段數(shù)碼管(共陽(yáng)極)顯示的十六進(jìn)制基數(shù)( 0~ F)的十六進(jìn)制數(shù)的字形代碼,可使用多條 DB命令定義。 DB 0C0H, 0F9H, 0A4H, 0B0H; 0, 1, 2, 3 DB 99H, 92H, 82H, 0F8H; 4, 5, 6, 7 DB 80H, 90H, 88H, 83H; 8, 9, A, B DB 0C6H, 0A1H, 86H, 84H; C, D, E, F 查表時(shí) ,為確定數(shù)據(jù)區(qū)的起始地址 ,可采用兩種方法 : a) 根據(jù) DB命令前一條指令的地址確定。把該地址加上它的字節(jié)數(shù)就是 DB的定義的數(shù)據(jù)字節(jié)的起始地址。 例: 8100: MOV A, 49H;一字節(jié)指令 TAB: DB 0COH, 0F9H, 0A4H, 0B0H; ┋ 定義的 7段數(shù)碼管(共陽(yáng)極)顯示的十六進(jìn)制基數(shù)( 0~ F)的十六進(jìn)制數(shù)的字形代碼 從 8101H地址 單元 開始存放。 b)使用 0RG命令專門規(guī)定。 例: ORG 8100H TAB: DB 0COH, 0F9H, 0A4H, 0B0H; ┋ 定義的 7段數(shù)碼管(共陽(yáng)極)顯示的十六進(jìn)制基數(shù)( 0~ F)的十六進(jìn)制數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1