導航:首頁 > APP軟體 > 匯編安卓程序代碼

匯編安卓程序代碼

發布時間:2023-09-19 22:30:30

安卓手機開發者選項代碼大全

*#*#4636#*#*
顯示手機信息、電池信息、電池記錄、使用統計數據、WiFi 信息
*#*#7780#*#*
重設為原廠設定,不會刪除預設程序,及 SD 卡檔案。
*2767*3855#
重設為原廠設定,會刪除 SD 卡所有檔案。
*#*#34971539 #*#*
顯示相機相機韌體版本,或更新相機韌體
*#*#7594#*#*
當長按關機按鈕時,會出現一個切換手機模式的窗口,包括:
靜音模式、飛航模式及關機,你可以用以上代碼,直接變成關機按鈕。
*#*#273283*255*663282*#*#*
開啟一個能讓你備份媒體文件的地方,例如相片、聲音及影片等
*#*#197328640#*#*
啟動服務模式,可以測試手機部分設置及更改設定WLAN、GPS及藍牙測試的代碼
*#*#232339#*#*或*#*#526#*#*或*#*#528#*#*
WLAN 測試
*#*#232338#*#*
顯示WiFi MAC地址
*#*#1472365#*#*
GPS 測試
*#*#1575#*#*
其它GPS測試
*#*#232331#*#*
藍牙測試
*#*#232337#*#
顯示藍牙裝置地址
*#*#8255#*#*
啟動GTalk服務監視器顯示手機軟體版本的代碼
*#*#4986*2650468 #*#*
PDA、Phone、H/W、RFCallDate
*#*#1234#*#*
PDA及Phone
*#*#1111#*#*
FTA
SW 版本
*#*#2222#*#*
FTA HW 版本
*#*#44336#*#*
PDA、Phone、csc、build Time、an.name、changelist
number
各項硬體測試
*#*#0283#*#*
Packet
Loopback
*#*#0*#*#*
LCD 測試
*#*#0673#*#*或*#*#0289#*#*
Melody
測試
*#*#0842#*#*
裝置測試,例如振動、亮度
*#*#2663#*#*
觸控屏幕版本
*#*#2664#*#*
觸控屏幕測試
*#*#0588#*#*
接近感應器測試
*#*#3264#*#*
內存版本

❷ 匯編代碼實例

偽 指 令
偽指令是對匯編起某種控製作用的特殊命令,其格式與通常的操作指令一樣,並可加在匯編程序的任何地方,但它們並不產生機器指令。許多偽指令要求帶參數,這在定義偽指令時由「表達式」域指出,任何數值與表達式勻可以作為參數。不同匯編程序允許的偽指令並不相同,以下所述的偽指令僅適用於MASM51系統,但一些基本的偽指令在大部份匯編程序中都能使用,當使用其它的匯編程序版本時,只要注意一下它們之間的區別就可以了。MASM51中可用的偽指令有:ORG 設置程序起始地址END 標志源代碼結束EQU 定義常數SET 定義整型數DATA 給位元組類型符號定值BYTE 給位元組類型符號定值WROD 給字類型符號定值BIT 給位地址取名ALTNAME 用自定義名取代保留字DB 給一塊連續的存儲區裝載位元組型數據DW 給一塊連續的存儲區裝載字型數據DS 預留一個連續的存儲區或裝入指定位元組。INCLUDE 將一個源文件插入程序中TITLE 列表文件中加入標題行NOLIST 匯編時不產生列表文件NOCODE 條件匯編時,條件為假的不產生清單一、ORG 偽指令ORG用於為在它之後的程序設置地址值,它有一個參數,其格式為:ORG 表達式表達式可以是一個具體的數值,也可以包含變數名,如果包含變數名,則必須保證,當第一次遇到這條偽指令時,其中的變數必須已有定義(已有具體的數值),否則,無定義的值將由0替換,這將會造成錯誤。在列表文件中,由ORG定義的指令地址會被列印出來。ORG指令有什麼用途呢?指令被翻譯成機器碼後,將被存入系統的ROM中,一般情況下,機器碼總是一個接一個地放在存儲器中,但有一些代碼,其位置有特殊要求,典型的是五個中斷入口,它們必須被放在0003H,000BH,0013H,001BH和0023H的位置,否則就會出錯,如果我們編程時不作特殊處理,讓機器代碼一個接一個地生成,不能保證這些代碼正好處於這些規定的位置,執行就會出錯,這時就要用到ORG偽指令了。看如下例子:例:INT_0 EQU 1000HTIME_0 EQU 1010HINT_1 EQU 1020HTIME_1 EQU 1030HSERIAL EQU 1040HAJMP START ;跳轉到主程序起始點LJMP INT_0 ;外中斷0處理程序LJMP TIME_0 ;定時中斷0處理程序LJMP INT_1 ;外中斷1處理程序LJMP TIME_1 ;定時中斷1處理程序LJMP SERIAL ;串列口中斷程序START:NOPEND上面的程序經匯編後列表文件如下:The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 108-26-96 1000 = INT_0 EQU 1000H1010 = TIME_0 EQU 1010H1020 = INT_1 EQU 1020H1030 = TIME_1 EQU 1030H1040 = SERIAL EQU 1040H0000 0111 AJMP START ;跳轉到主程序起始點0002 021000 LJMP INT_0 ;外中斷0處理程序0005 021010 LJMP TIME_0 ;定時中斷0處理程序0008 021020 LJMP INT_1 ;外中斷1處理程序000B 021030 LJMP TIME_1 ;定時中斷1處理程序000E 021040 LJMP SERIAL ;串列口中斷程序START:0011 00 NOP0000 ENDThe Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 208-26-96;%T Symbol Name Type ValueINT_0 . . . . . . . . . . . . . I 1000INT_1 . . . . . . . . . . . . . I 1020SERIAL. . . . . . . . . . . . . I 1040START . . . . . . . . . . . . . L 0011TIME_0. . . . . . . . . . . . . I 1010TIME_1. . . . . . . . . . . . . I 1030;%Z00 Errors (0000)由列表文件,可以繪出代碼在ROM中的映象圖如下:代碼
01H
11H
02H
10H
00H
02H
10H
10H
02H
10H
20H

地址
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH

代碼
02H
10H
30H
02H
10H
40H
00H





地址
0BH
0CH
0DH
0EH
0FH
10H
11H
12H
13H
14H
15
由上面的映象圖可知,在03H處的代碼為10H,而不是我們要的02H,所以外斷程序INT_0不能被正確執行,其它各中斷程序的情況同樣如此,如在0BH處,本來存放的應當是定時器0中斷程序,但按上述的映象圖,0BH處開始的3個代碼是:02H,10H,30H,這是定時器1的入口地址,所以,如果定時器0發生中斷,所執行的其實是定時器1的中斷程序,這當然不對。例2:INT_0 EQU 1000HTIME_0 EQU 1010HINT_1 EQU 1020HTIME_1 EQU 1030HSERIAL EQU 1040HAJMP START ;跳轉到主程序起始點ORG 0003HLJMP INT_0 ;外中斷0處理程序ORG 000BHLJMP TIME_0 ;定時中斷0處理程序ORG 0013HLJMP INT_1 ;外中斷1處理程序ORG 001BHLJMP TIME_1 ;定時中斷1處理程序ORG 0023HLJMP SERIAL ;串列口中斷程序START:NOPEND上面的程序經過匯編後列表文件如下:The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 108-26-961000 = INT_0 EQU 1000H1010 = TIME_0 EQU 1010H1020 = INT_1 EQU 1020H1030 = TIME_1 EQU 1030H1040 = SERIAL EQU 1040H0000 0126 AJMP START ;跳轉到主程序起始點0003 ORG 0003H0003 021000 LJMP INT_0 ;外中斷0處理程序000B ORG 000BH000B 021010 LJMP TIME_0 ;定時中斷0處理程序0013 ORG 0013H0013 021020 LJMP INT_1 ;外中斷1處理程序001B ORG 001BH001B 021030 LJMP TIME_1 ;定時中斷1處理程序0023 ORG 0023H0023 021040 LJMP SERIAL ;串列口中斷程序START:0026 00 NOP0000 ENDThe Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 208-26-96;%T Symbol Name Type ValueINT_0 . . . . . . . . . . . . . I 1000INT_1 . . . . . . . . . . . . . I 1020SERIAL. . . . . . . . . . . . . I 1040START . . . . . . . . . . . . . L 0026TIME_0. . . . . . . . . . . . . I 1010TIME_1. . . . . . . . . . . . . I 1030;%Z00 Errors (0000)由列表文件,可以繪出代碼在ROM中的映象圖如下:代碼
01H
11H

02H
10H
00H






地址
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH

代碼
02H
10H
10H





02H
01H
20H

地址
0BH
0CH
0DH
0EH
0FH
10H
11H
12H
13H
14H
15H

代碼





02H
10H
30H




地址
16H
17H
18H
19H
1AH
1BH
1CH
1DH
1EH
1FH
20H

代碼


02H
10H
40H
00H






地址
21H
22H
23H
24H
25H
26H
27H
28H
29H
2AH
2BH
由映象圖可知,各中斷程序的代碼都在其規定地址處,一旦產生中斷即可執行相應的程序。至於圖中未填的部分(如02H),根據各編程器不同而不同,一般為FFH或00H。 二、END END語句標志源代碼的結束,匯編程序遇到END語句即停止運行。若沒有END語句,匯編將報錯。END語句有一個參數,可以是數值0,也可以是表達式,其格式是:標號: END 表達式它的值就是程序的地址並且作為一個特殊的記錄寫入HEX文件。若這個表達式省略,HEX文件中其值就是0。三、EQU EQU以及其它一些符號定義偽指令用來給程序中出現的一些符號賦值。對這些符號名的要求與其它符號相同,即長度不限,大小寫字母可互換並且必須以字母開頭。由等值指令定義的符號是匯編符號表的一部分。等值偽指令有兩種形式。一種用EQU,另一種用字元「=」即符號名 EQU 表達式符號名 = 表達式兩種形式的效果是一樣的。符號名在左邊,其對應的值在右邊。值可以是變元,其它的符號名或表達式。只要在兩遍掃描中求出表達式的值就行,否則引用該符號名時將報錯。當表達式的值是字元串時,只取後兩個字元。若串長為1,高位位元組被置0,符號名的值被列印在程序清單中。由等值偽指令定義的符號名不允許重名。如果經定義的符號名被重定義,則匯編將報出錯,並且這個符號名按新定義的處理,最好不要在程序中出現重名。例:0469= ABC EQU 469H0464= XY EQU ABC-502F0= JK = 7520754 XYJK = XY+JK在列表文件中最左邊的數字不是這些偽指令所在的地址而是通過匯編後賦給符號名的值。第一條符號名ABC被起來469H,第二條XY被賦於ABC-5,因此XY的值為469H-5=464H,JK的值為752(即2F0H),XYJK的值XY+JK=464H+2F0H=754H四、SET SET偽指令有些類似於等值偽指令,它定義了一個整數類型的符號名,它的格式為符號名 SET 表達式SET偽指令與等值偽指令的唯一區別在於SET偽指令所定義的符號名右以在程序中多次定義,而不報錯。例:002D= K57 SET 101101B8707= K57 SET 34567五、DATA與BYTE DATA與BYTE都是用來定義位元組類型的存儲單元,賦予位元組類型的存儲單元一個符號名,以便在程序中通過符號名來訪問這個存儲單元,以幫助對程序的理解。BYTE與DATE之間的區別類似於EQU和SET,BYTE偽指令不能定義重名。六、WORD WORD偽指令類似於DATE偽指令,只是WORD偽指令定義了一個字類型的符號名,其格式為:符號名 WORD 表達式0027= VAL31 WORD 390021= PAR7 WORD 21H一個字由2個位元組組成。當然,因為8051匯編語言集沒有字操作,所以程序執行時,只處理位元組。WROD偽指令僅僅允許用戶定義一個認為是字的存儲位置。七、BIT BIT偽指令定義了一個字位類型的符號名,其格式為:符號名 BIT 表達式這里表達式的值是一個位地址,這個偽指令有助於位的地址符號化。例:002F= LOG3 BIT 470014= Y731 BIT 14H八、ALTNAME 替換名(ALTNAME)偽指令提供用戶一種手段,以定義一個符號名來替換一個保留字,此後這個答名與被替換的保留字均可等效地用於程序中。任何保留類型的答名均可被替換。替換名偽指令格式為:ALTNAME 保留字,新名例:0002= ALTNAME R2 COUNT013A EA MOV A,R2013B E502 MOV A,COUNT九、DB DB偽指令用於定義一個連續的存儲區,給該存儲區的存儲單元賦值。該偽指令的參數即為存儲單元的值,在表達式中對變元個數沒有限制,只要此條偽指令能容納在源程序的一行內,其格式為:標號: DB 表達式只要表達式不是字元串,每一表達式值都被賦給一個位元組。計算表達式值時按16位處理,但其結果只取低8位,若多個表達式出現在一個DB偽指令中,它們必須以逗號分開。表達式中有字元串時,以單引號「'」作分隔符,每個字元佔一個位元組,字元串不加改變地被存在各位元組中,並不將小寫字母轉換成大寫字母。例如:DB 00H 01H 03H 46HDB 'This is a demo!'十、DW DW為以位元組為單元(十六位二進制)來給一個的存儲區賦值,其格式為:標號: DW 表達式例如:0000 3035 D46B DW 12341,54379,10110100101110B0004 2D2E0006 4344 4243 DW 'ABCD','BC','A'000A 0041000C 2868 02E8 DW 456*375h,83+295h,'YZ',72h-4560010 595A FEAA十一、DS DS為定義存儲內容的偽指令,用它定義一個存儲區,並用指定的參數填滿該存儲區。DS偽指令包含兩個變元,第一個變元定義了存儲區的長度的位元組數,在匯編時,匯編程序將跳過這些單元把其它指令匯編在這些位元組之後,因此在使用DS偽指令時第一個變元不可活力第二個變元表示在這些單元中真入什麼值,第二個變元可以活力活力時這些位元組將不處理。下例中0173處有一條DS 9,則空出9個位元組,下一第指令被匯編到017C處;在017C處空出1BH個單元,在這些位元組中被27H所填充。DS指令的格式如下:標號: DS 表達式1,表達式2表達式1定義了存儲區的長度(以位元組為單位)。這個變元不能省略。表達式2是可選擇的,它的值低8位用以填入所定義的存儲區。若省略則這部分存儲單元不處理。例:0000 04 INC A0001 DS 9000A 04 INC A000B DS 1BH,27H0026 04 INC A十二、INCLUDE INCLUDE偽指令用於鏈接源文件,即將一個源文件插入到另一個源文件中。它有一個參數,指出將要插入的文件名,該文件名中可包括驅動器名和路徑名。若文件沒有擴展名,則默認為是ASM。但待插入的文件必須是可以打開的。若文件打開操作失敗,則產生致命錯誤,匯編將停止運行。反之,匯編程序將文件內容讀入並按源代碼處理。當遇到文件結速符時,匯編程序返回到INCLUDE偽指令處繼續身下處理源程序。被插入的文件在程序清單中以「I」開頭。本宏匯編版本支持級嵌套,可在程序中用INCLUDE偽指令插入任意多個文件,但是,在一般情況下DOS允許打開的文件數量是有限的,如果用戶需要打開較多的文件,則必須在CONFIG.SYS文件中加入FILES=40或更多的值,若超過8級嵌套或打開的文件太多,則產生致命錯誤,匯編中止運行。INCLUDE偽指令提供了模塊化程序設計手段,在匯編程序處理主程序時,模塊被插入,盡管這不等價於鏈接和裝配可重定位的目標模塊,但它具有類似的功能,被插入的源文件中不應該包含END偽指令,否則,匯編就會提前停止運行,END偽指令只能出現在主程序中。此外,在主程序進行匯編前所有附加的源文件必須通過匯編,產生相應的HEX及LST文件,由於附加的文件沒有END偽指令,因此,附加文件匯編時,匯編程序將顯示:「沒有結束語句」的錯誤,但並不影響與主程序的鏈接。下面是一個使用INCLUDE偽指令的例子,其主程序的源文件MAIN.ASM為:;MAIN.ASMORG 27HSTART:CLR AMOV R3,AINCLUDE MOD1INC R5INCLUDE MOD2.ASMDEC R3END START主程序為帶有END偽指令的完整的源文件。程序中有兩INCLUDE偽指令,分別將兩附加的文件MOD1.ASM及MOD2.ASM鏈接到主程序中。以下是這兩個文件。;MOD1.ASMMOV R2,#31HMOV R5,#18H;MOD2.ASMMOV R6,#47HANL A,#07HMOV R1,A注意MOD1.ASM及MOD2.ASM均沒有END指令。在進行匯編時必須先對MOD1.ASM和MOD2.ASM進行匯編,然後在匯編MAIN.ASM,由於上兩個文件沒有END偽指令,所以在匯編時會出現錯誤提示,不用管它,繼續下面的工作,就可以得到正確的結果。以下是形成的列表文件:The Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 1;MOD2.ASMMOV R6,#47HANL A,#07HMOV R1,A08-27-96;MAIN.ASM0027 ORG 27HSTART:0027 E4 CLR A0028 FB MOV R3,AI INCLUDE MOD1I ;MOD1.ASMI0029 7A31 MOV R2,#31HI002B 7D18 MOV R5,#18HI002D 0D INC R5I INCLUDE MOD2.ASMI ;MOD2.ASMI002E 7E47 MOV R6,#47HI0030 5407 ANL A,#07HI0032 F9 MOV R1,A0033 1B DEC R30027 END STARTThe Cybernetic Micro Systems 8051 Family Assembler, Version 3.03 Page 208-27-96;%T Symbol Name Type ValueSTART . . . . . . . . . . . . . L 0027;%Z00 Errors (0000)十三、TITL TITLE偽指令用於在列表文件頁頭建立一個標題,其格式為:$TITLE 標題行這里標量行就是將出現在頁頭的標量與通常的字元串定義不同。這里標量行不加引號。匯編從$TITLE之後的第一個可列印字元開始,到回車符之間的字元串作為標量標量的最大長度是60個字元,基標量行省略,則標題行為空行。若TITLE偽指令在一頁,它說明的標量行包含在本頁,否則,標題將出現在下頁頁頭。十四、PAGE PAGE偽指令用於形成新的一中定義一面的行數。其格式為:$PAGE 表達式若表達 式預設則開始新的一頁,若有表達式,則每頁行數重新定義。匯編開始時頁長為66行。一頁中除出頁外,剩餘55行用於列印源程序,這一格式適用於標准列印紙。如果變元值小於66,頁內可列印的源代碼行將相應減少。頁長最小值為12。若小於12時,每頁內除頁上只列印一行源程序。頁長變元是16位位元組,因而每頁最長可定義到65535行,這時分頁列印變為連續列印,在屏幕顯示程序清單或在捲筒紙上列印程序清單時,常常使用連續列印,如果在啟動匯編時用/N選項,頁長就是65535。十五、LIST與NOLIST 它們的格式為:$LIST$NOLISTLIST偽指令使匯編時主生程序清單,但即使不用該指令,匯編也會自動產生清單。但如果使用了NOLIST偽指令後需要繼續主生清單則必須使用LIST偽指令。NOLIST偽指令使匯編時不產生清單,所有包含此偽指令及在這條偽指令之後的語句都不進入列表文件。當不需要任何列表文件,並且不需要顯示程序清單時,可以在啟動匯編時不加.L附加項,且在源代碼的第一行加上NOLIST指令。使用NOLIST偽指令與附加項/L不同之處是NOLIST偽指令可加在源程序中,與LIST偽指令配合使用,使源程序中某些部分不產生清單。而不加附加項/L則不產生任何程序清單。不過,不管有無$NOLIST偽指令,程序在匯編時檢查到的錯誤都將在屏幕上顯示出錯的源代碼行及錯誤信息十六、NOCODE 其格式為 $NOCODENOCODE偽指令使得在匯編時,條件匯編程序結構中那些真值為假的條件不產生清單。有關條件匯編結構在下面介紹。如果沒有這條偽指令,匯編將主生所有條件下的清單,不論其真值是否為真。但是假的條件,不產生目標碼。而NOCODE偽指令使匯編清單中只列出那些由匯編程序用到的部分,因此,當使用NOCODE偽指令時,程序清單與源程序並非逐行對應。 本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/sunnf/archive/2008/10/23/3129370.aspx

❸ 誰給我寫一個最簡單的匯編語言程序

............上來就是LCD人家看得懂么......

ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
ACALL DEL
MOV P0,#FFH
MOV P1,#FFH
MOV P2,#FFH
MOV P3,#FFH
ACALL DEL
AJMP MAIN
ORG 200H
DEL: MOV R5,#04H
DEL1:MOV R6,#0FFH
DEL2:MOV R7,#0FFH
DEL3:DJNZ R7,DEL3
DJNZ R6,DEL2
DJNZ R5,DEL1
ret
end
給新手的新手注釋 :H表示地址 mov 是賦值的含義 R1,R2.....是寄存器,main相當於C語言中主函數,是程 序的入口 0H~30H 一般用於存放中斷函數無條件跳轉語句(即為AJMP,SJMP,LJMP, 3者無條件跳轉的地址量有限,LJMP最大(64Kbyte空間內語句可跳轉),SJMP最小(-128H~+127H )) ,AJMP為2KByte無條件跳轉

DEL 在該程序中表示延時函數,首先對寄存器R5,R6,R7賦值,R5*R6*R7*機器周期為延時時間 【 機器周期:12MHZ晶振=1us 6MHZ=2us】 執行完DEL中的MOV後 執行的是DJNZ命令,相當於C中i - -,不同的是若 i - -!=0,則跳轉到 [DJNZ R...,()] 中()所代表的自定義函數{PS:DEL~DEL3均是是自定義函數,在延時函數里,為了達到延時值,一般都象我所寫的那樣 DEL: DJNZ R...,DEL 這樣,i - -後又跳回來...,注意,在這里DEL,DEL1,...DEL3合起來叫做延時函數}

END表程序結束符(必須有)ACALL是表示調用子程序(這里,子函數是延時函數DEL)。。。。。與RET配套RET表返回調用子程序處

另外,該函數P0的點亮反映了共陰極合共陽極的不同,共陽極是MCU(即為單片機)接上若干發光二極體,並接電源VCC=+5V,如此一來,共陽極 熄滅整個一組埠FFH,點亮整個一組埠為00H 共陰極熄滅與點亮與共陽極恰起相反,因為共陰極MCU接上發光二極體後(從電路圖看發光二極體上那一小豎道要面向GND而不是像共陽極那樣面向MCU,當然在實際上也要注意接法的正負)接GND

閱讀全文

與匯編安卓程序代碼相關的資料

熱點內容
mdfldf是什麼文件 瀏覽:569
文件在桌面怎麼刪除干凈 瀏覽:439
馬蘭士67cd機版本 瀏覽:542
javaweb爬蟲程序 瀏覽:537
word中千位分隔符 瀏覽:392
迷你編程七天任務的地圖怎麼過 瀏覽:844
word2003格式不對 瀏覽:86
百度雲怎麼編輯文件在哪裡 瀏覽:304
起名app數據哪裡來的 瀏覽:888
微信怎麼去泡妞 瀏覽:52
百度廣告html代碼 瀏覽:244
qq瀏覽器轉換完成後的文件在哪裡 瀏覽:623
jsp中的session 瀏覽:621
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567

友情鏈接