版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗一 清零、移數(shù)、判斷,將片內30H40H及片外0010H0100H清零,然后將片內41H47H的內容移到片外0041H0047H,判斷: 若(0041H)15,則求其平方存到0050H中,并將位00H置1。(0041H)=15, 則加15存到0050H中,并將位01H置1。 (0041H)15, 則減15存到0050H中,并將位02H置1。,實驗報告要求: 1寫明實驗日期、桌號 2寫明實驗要求; 3編程,加標注 4寫出調試過程,遇到的問題及解決方法 5總結實驗目的,寫出收獲體會,第四章 80C51單片微機的程序設計,4.1概述 匯編語言格式 偽指令語句 4.2 80C51匯編語言程序設計
2、順序結構程序設計 分支結構程序設計 循環(huán)結構程序設計 子程序設計 程序設計舉例,4.1概述4.1.1 匯編語言格式,1. 計算機語言 機器語言 匯編語言 高級語言,2. 匯編語言 語句種類: 指令語句 偽指令語句 宏指令 語句的格式: 指令語句格式 :標號:操作碼 操作數(shù) ;注釋 偽指令語句格式:名字 定義符 參數(shù) ;注釋,例:把片外存儲器2200H單元中的數(shù)送入片內70H單元中。 標號域 操作碼域 操作數(shù)域 注釋域 BEGIN:MOV DPTR,#2200H ;(DPTR)=2200H MOV R0,#70H ;(R0)=70H MOVX A,DPTR ;(A)=(DPTR) MOV R0,
3、A ;(R0)=(A),偽指令:僅在匯編時起控制作用,是為匯編服務的一些指令。 偽操作:由偽指令確定的操作稱為偽操作。 “偽”體現(xiàn)在匯編時不產(chǎn)生機器指令代碼,不影響程序的執(zhí)行,僅指明在匯編時執(zhí)行一些特殊的操作。,4.1.2 偽指令語句, ORG (Origin) 匯編起始地址偽指令 指令格式為: ORG 表達式 例: ORG 1000H START:MOV A,12H END(END of assembly) 匯編結束偽指令 一定放在程序末尾! EQU(EQUate)賦值偽指令 指令格式為:標號 EQU 表達式 含義:把表達式賦值于標號,標號和表達式都是不可少。 例:AAEQU30H K1EQ
4、U40H MOV A,AA; (30H)A MOV A,K1;(40H)A,4、DB (Define Byte) 定義字節(jié)偽指令 指令格式為:標號 DB 表達式或表達式表 例: ORG2000H TABLE: DB 73H,04,100,32,00 5、 DW (Define Word) 定義字偽指令 指令格式為:標號 DW 表達式或表達式表 例:DW100H,3456H,814 表示按順序存入01H,00H,34H,56H,03H,2EH (DB、DW定義的表一般數(shù)的個數(shù)不得超過80個),6 、DS (Define Storage) 定義存儲區(qū)偽指令 指令格式為: DS 含義:通知匯編程序,
5、在目標代碼中,以標號為首地址保留表達式值的若干存儲單元以備源程序使用。匯編時,對這些單元不賦值。 例: BASE DS 100H 注意:DB、DW、DS等偽指令只能應用于程序存儲器, 不能用于數(shù)據(jù)存儲器。 7、 BIT 位定義偽指令 命令格式為: BIT 含義:給字符名稱賦予位地址。例:RED BIT P1.0 SETB RED,例1. 偽指令應用 ORG 8100H BUFFER DS 10H DW “A B” DW 100H,1ACH,-814 說明: 從8100H至810FH為緩沖區(qū)空間 (8110H)=41H (A) (8111H)=42H (B) 8112H單元起存放01H、00H、
6、01H、ACH、FCH、D2H,4.2 80C51匯編語言程序設計,程序結構:順序結構 分支結構 循環(huán)結構 子程序 中斷服務子程序, 匯編和調試,程序設計的基本方法,編寫程序要求: 不僅要完成規(guī)定的功能任務,而且還要求: 執(zhí)行速度快、占用內存少、條理清晰、 閱讀方便、便于移植、巧妙而實用。 一般應按以下幾個步驟進行:, 分析問題,確定算法或解題思路, 畫流程圖, 編寫源程序,流程圖符號和說明:,ORG 0030H START:MOV DPTR, #TABLE MOV A, 20H MOVC A, A+DPTR MOV 21H, A SJMP $ ORG 0100H TABLE:DB 0,1,4
7、,9,16,25 END,例1:變量存在內部RAM的20H單元中,其取值范圍:05,編程,用查表法求其平方值存到21H中,4.2 .1 順序結構程序設計,開始,表格首地址送DPTR,變量送A(20H) A,查平方表(A+DPTR) A,結束,結果送21H單元:A 21H,設被加數(shù)存放于片內RAM的20H(低位字節(jié))、21H(高位字節(jié)),加數(shù)存放于22H(低位字節(jié))和23H(高位字節(jié)),運算結果的和數(shù)存放于20H(低位字節(jié))和21H(高位字節(jié))中。實現(xiàn)16位相加,(如果有進位位保存在10H中)。 ORG 0100H ADD_2:PUSH ACC;將A中內容進棧保護 MOV R0,20H ;將20
8、H地址送R0 MOV R1,22H ;將22H地址值送R1 MOV A,R0 ;被加數(shù)低字節(jié)內容送A ADD A,R1 ;低字節(jié)數(shù)相加 MOV R0,A ;低字節(jié)數(shù)和存20H中,例2. 不帶符號兩字節(jié)加法,INC R0 ;指向被加數(shù)高位字節(jié)INC R1 ;指向加數(shù)高位字節(jié) MOV A,R0 ;被加數(shù)高位字節(jié)送A ADDC A,R1 ;高字節(jié)數(shù)帶進位相加MOV R0,A;高字節(jié)數(shù)和存21H中CLRA ADDC A, #00H MOV10H, A;進位暫存于10H中 POP ACC ;恢復A原內容 RET,設有一個巡回檢測報警裝置,需對4 路輸入進行控制,每路設有一個最大額定值,為雙字節(jié)數(shù)??刂茣r
9、需根據(jù)檢測的路號找出該路對應的最大額定值。設R2用于寄存檢測路號,查找到的對應的最大額定值存放于31H和32H單元中。 查找最大允許額定值子程序如下:,例3. 查表,地址 機器碼 源程序注釋 ORG 2000H 2000 EA MOV A,R2;檢測路號送A 2001 2A ADDA,R2;(R2)2 2002 F531 MOV 31H,A ;距表首址偏移量 2004 2408 ADD A,#19H;偏移量(2020H-2007H) 2006 83 MOVC A,A+PC;查表,讀取第1個字節(jié)內容 2007 C531 XCH A,31H;第1字節(jié)存入31H單元 2009 2404 ADD A,
10、#15H;偏移量(2021H-200CH) 200B 83 MOVC A,A+PC;查表,讀取第2字節(jié) 200C F532 MOV 32H,A;第2字節(jié)存入32H單元 200E ,地址 機器碼 源程序注釋 ORG2020H;最大額定值表 20201230 TAB:DW 1230H,;路號0 20221540 DW 1540H ;路號1 20242340 DW 2340H ,;路號2 20262430 DW 2430H;路號3 END 說明:rel計算2020H-(2006H+1)=19H (2020H+1)-(200BH+1)=15H, 單分支結構 程序有兩個出口,二選一。 位條件轉移指令:J
11、C、JNC、 JB JNB、JBC等 字節(jié)條件轉移指令:JZ、JNZ、 DJNZ、CJNE等 有3種典型形式(見圖42)。,4.2.2 分支結構程序設計,單分支 多分支,雙分支 N分支,ORG0000H START:MOV R3,B;保存B MOV B,A MULAB;(B)(A)= a2 MOV R0,A;(R1)(R0)= a2 MOV R1,B MOV A,R3 CJNEA,#0AH,MMN;b10則轉移,例、編程計算,結果存在R1R0,Y=a2b (當b10時) Y=a2b (當b10時)-a,b為寄存器,MM:ADD A,R0;b10 , a2+b=Y MOV R0,A MOV A,
12、#00H ADDC A,R1 MOV R1,A SJMP HERE,MMN:JNC MM ;無借位(即b10)轉MM MOV A,R0 CLR C,SUBBA, R3 ; (R1)( R0)a2-b MOV R0,A MOV A,R1 SUBBA,#00H MOV R1,A HERE:AJMP HERE END, 多分支選擇結構 結構形式見圖43。,例1:設變量x以補碼形式存放在片內RAM 30H單元中,變量y與x的關系是:,編程根據(jù)x的值求y值 并放回原單元。,ORG 1000H START:MOV A,30H JZ NEXT ;x=0,轉移 ANL A,#80H ;保留符號位 JZ ED
13、;x0,轉移 MOV A,#05H ;x0,不轉移 ADD A,30H MOV 30H,A SJMP ED NEXT:MOV 30H,#20H ED:SJMP $ END,例:將ASCII碼轉換為十六進制數(shù)。設ASCII碼放在累加器A中,轉換結果放到B中。 解:由ASCII碼表(表1-4)可知,30H39H為09的ASCII碼,41H46H為AF的ASCII碼。將ASCII碼減30H(09)或37H(AF)就可獲得對應的十六進制數(shù)。程序如下: ASC: CLR C SUBB A,#30H ;A-30H CJNE A,#0AH,ASCO ;差值10比較,在C中產(chǎn)生10或10標志 ASCO: JC
14、 ASC1 ;10,已變?yōu)锳SC碼 SUBB A,#07H ;10,再減7 ASC1: MOV B,A ;存轉換結果 RET, S0單獨按下, 紅燈亮,其余燈滅; S1單獨按下, 綠燈亮,其余燈滅; 其余情況, 黃燈亮。,已知電路如圖4-5所示,要求實現(xiàn):,解:程序如下 SGNL:ANL P1,#11100011B;紅綠黃燈滅 ORL P1,#00000011B;置P1.0、P1.1輸入態(tài), P1.5P1.7狀態(tài)不變 SL0: JNB P1.0,SL1 ;P1.0=0,S0未按下,轉判S1 JNB P1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,轉紅燈亮 YELW:SE
15、TB P1.4 ;黃燈亮 CLR P1.2 ;紅燈滅 CLR P1.3 ;綠燈滅 SJMP SL0 ;轉循環(huán) SL1: JNB P1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,轉黃燈亮 GREN:SETB P1.3 ;綠燈亮 CLR P1.2 ;紅燈滅 CLR P1.4 ;黃燈滅 SJMP SL0 ;轉循環(huán) RED: SETB P1.2 ;紅燈亮 CLR P1.3 ;綠燈滅 CLR P1.4 ;黃燈滅 SJMP SL0 ;轉循環(huán),在單片機系統(tǒng)中設置+、四個運算命令鍵,它們的鍵號分別為0、1、2、3。當其中一個鍵按下時,進行相應的運算。操作數(shù)由P1口和P3口輸入,運算結
16、果仍由P1口和P3口輸出。具體如下:P1口輸入被加數(shù)、被減數(shù)、被乘數(shù)和被除數(shù),輸出運算結果的低8位或商;P3口輸入加數(shù)、減數(shù)、乘數(shù)和除數(shù),輸出進位(借位)、運算結果的高8位或余數(shù)。鍵盤號已存放在30H中。,散轉程序,散轉程序是一種并行多分支程序。,單片機四則運算系統(tǒng)。,分析: -”0”: 被加數(shù): 從P1口讀入 加數(shù): 從P3口讀入 和: 從P1口輸出; 進位: 從P3口輸出 -”1”: 被減數(shù): 從P1口讀入 減數(shù): 從P3口讀入 差: 從P1口輸出; 借位: 從P3口輸出 -”2”: 被乘數(shù): 從P1口讀入 乘數(shù): 從P3口讀入 積的低8位:從P1口輸出; 積的高8位:從P3口輸出 -”3
17、”: 被除數(shù): 從P1口讀入 除數(shù): 從P3口讀入 商: 從P1口輸出; 余數(shù): 從P3口輸出,解:程序如下: PRGM: MOV P1,#0FFH ;P1口置輸入態(tài) MOV P3,#0FFH ;P3口置輸入態(tài) MOV DPTR,#TBJ ;置“”散轉表首地址 MOV A,30H ;讀鍵號 RL A ;鍵號2A ADD A,30H ;鍵號3A JMP A+DPTR ;散轉 TBJ: LJMP PRGM0 ;轉PRGM0(加法) LJMP PRGM1 ;轉PRGM1(減法) LJMP PRGM2 ;轉PRGM2(乘法) LJMP PRGM3 ;轉PRGM3(除法) PRGM0: MOV A,P1
18、 ;讀加數(shù) ADD A,P3 ;P1+P3 MOV P1,A ;和P1 CLR A ; ADDC A,#00H ;進位A MOV P3,A ;進位P3 AJMPPRGM(RET) ;,PRGM1: MOV A,P1 ;讀被減數(shù) CLR C ;CY清零 SUBB A,P3 ;P1-P3 MOV P1,A ;差P1 CLR A ; RLC A ;借位A MOV P3,A ;借位P3 AJMPPRGM(RET) ; PRGM2: MOV A,P1 ;讀被乘數(shù) MOV B,P3 ;置乘數(shù) MUL AB;P1P3 MOV P1,A;積低8位P1 MOV P3,B;積高8位P3 AJMPPRGM(RET)
19、 ; PRGM3: MOV A,P1 ;讀被除數(shù) MOV B,P3 ;置除數(shù) DIV AB;P1P3 MOV P1,A ;商P1 MOV P3,B ;余數(shù)P3 AJMPPRGM(RET) ; 說明:由于LJMP為3字節(jié)指令,因此鍵號需先乘3, 以便轉到正確的位置。,由40H單元中動態(tài)運行結果值來選擇分支程序 (40H)0,轉處理程序0. (40H)n,轉處理程序n START:MOV DPTR,addr16;指令表首址送DPTR MOV A,40H ;40H單元內容送A CLR C ;清CY RLC A ;A內容左移一位(2) JNC TABLE ;若CY0,轉TABEL INC DPH ;若
20、CYl,DPH內容十1 TABEL:JMP A十DPTR ;多分支轉移 ADDR16:AJMP LOOP0;轉分支程序0 AJMP LOOP1;轉分支程序1 AJMP LOOPn;轉分支程序n,例. 通過查轉移指令表實現(xiàn)多分支程序轉移,循環(huán)程序一般包括以下4個部分: 循環(huán)初始化; 循環(huán)體; 循環(huán)控制; 循環(huán)結束; 以上四部分可以有兩種組織形式。 計數(shù)循環(huán)結構如圖44所示, 條件循環(huán)結構如圖4-5所示。,4.2.3 循環(huán)結構程序設計,計數(shù)控制循環(huán)結構 DJNZ Rn,rel ;以工作寄存器作控制計數(shù)器 DJNZ direct,rel ;以直接尋址單元作控制計數(shù)器 條件控制循環(huán)結構 一般常用比較轉
21、移指令或條件判跳指令進行控制和實現(xiàn)。 循環(huán)嵌套結構,循環(huán)控制的一般方法: 循環(huán)次數(shù)已知- 利用循環(huán)次數(shù)控制 循環(huán)次數(shù)未知- 利用關鍵字控制,將內部RAM中起始地址為data的數(shù)據(jù)串送到外部RAM中起始地址為buffer的存儲區(qū)域中,直到發(fā)現(xiàn)$字符,傳送停止-循環(huán)次數(shù)事先不知道先判斷,后執(zhí)行。,ORG 1000H MOV R0,#data MOV DPTR, #buffer LOOP1:MOV A,R0 CJNE A,#24H,LOOP2 ;判斷是否為字符 SJMP LOOP3 ;是,轉結束 LOOP2:MOVX DPTR,A ;不是,傳送數(shù)據(jù) INC R0 INC DPTR SJMP LOOP
22、1 ;傳送下一數(shù)據(jù) LOOP3:END,【例412】 內部RAM 20H單元開始存有8個數(shù),試找出其中最大的數(shù),送入MAX單元。 解:程序如下:,ORG 1000H DELAY:MOV R6,#200 ; 1Tm LOOP1: MOV R7,#248 ; 1Tm NOP ; 1Tm LOOP2: DJNZ R7,LOOP2 ; 2Tm DJNZ R6,LOOP1 ; 2Tm RET ; 1Tm,補充例:軟件循環(huán)延時100mS(晶振12MHz), 1Tm =1uS 100mS = 100000 uS MOV Rn #data 和 NOP 是單機器周期指令 DJNZ Rn,rel 是雙機器周期指令
23、 200 = 0C8H ; 248 = 0F8H,1+1+ 248x2 =498,(498+2)x200,設80C51單片機的P1口作為輸出口,經(jīng)驅動電路74LS240(8反相三態(tài)緩沖/驅動器)接8只發(fā)光二極管,如圖4-8所示。當輸出位為“1”時,發(fā)光二極管點亮,輸出位為“0”時為暗。試編程實現(xiàn):每個燈閃爍點亮10次,再轉移到下一個燈閃爍點亮10次,循環(huán)不止。,【例4.15】 編制一個循環(huán)閃爍燈的程序。,FLASH:MOV A,#01H;置燈亮初值 FSH0: MOV R2,#0AH;置閃爍次數(shù) FLOP: MOV P1,A;點亮 LCALL DY1s;延時1s MOV P1,#00H;熄滅
24、LCALL DY1s;延時1s DJNZ R2,FLOP;閃爍10次 RL A;左移一位 SJMP FSH0;循環(huán) RET;,解:程序如下:,延時子程序可根據(jù)延時長短,自行編寫。,子程序調用指令: ACALL、LCALL 返回 RET 圖46 注意: 子程序入口 保護現(xiàn)場與恢復現(xiàn)場 (3)返回 子程序名 子程序功能 子程序入口條件和出口結果 子程序所用的寄存器、存儲單元、標志位等 子程序嵌套,4.2.4 子程序設計,應用軟件來進行數(shù)字濾波。中值濾波就是連續(xù)輸入三個檢測信號值,從中選擇一個中間值為有效信號。 入口條件:三次采集數(shù)據(jù)分別存儲在內部存儲器的20H、21H和22H中。 出口結果:中間值
25、在R0寄存器中。 使用資源:累加器A、R0及內存20H、21H和22H。,例. 中值數(shù)字濾波子程序,ORG2100H FILLT:PUSHPSW;PSW及ACC保護入棧 PUSHACC MOVA,20H;取第一個數(shù)據(jù) CLRC SUBBA,21H;與第二個數(shù)據(jù)比較,JNCLOB1;第一個數(shù)據(jù)比第二個數(shù)據(jù)大,轉LOB1 MOVA,20H;比第二個數(shù)據(jù)小,交換二個數(shù)的位置 XCHA,21H MOV20H,A LOB1:MOV A,22H CLRC SUBBA,20H;第三個數(shù)據(jù)與前二個數(shù)據(jù)中的較大數(shù)比較 JNCLOB3 ;第三個數(shù)據(jù)大于前二個數(shù)據(jù)中的大數(shù),轉LOB3,MOVA,22H CLRC S
26、UBBA,21H;第三個數(shù)據(jù)與前二個數(shù)據(jù)中的較小數(shù)比較 JNCLOB4 MOVA,21H ;21H單元中的值是中值 MOVR0,A LOB2:POPACC;恢復ACC和PSW POPPSW RET,LOB3:MOV A,20H ;20H單元中的值是中值 MOV R0,A AJMP LOB2 LOB4:MOV A,22H;22H單元中的值是中值 MOV R0,A AJMP LOB2,把外部RAM 30H3FH共 16個單元中的ASCII碼依次轉換為十六進制數(shù),并拼裝壓縮存入內部60H67H共8個單元中。 ASCTOH:MOVR0,#30H;設ASCII碼地扯指針 MOV R1,#60H;設十六進
27、制數(shù)地址指針 MOVR7,#08H ;拼裝的十六進制數(shù)字節(jié)個數(shù)。 AB:ACALL TRAN ;調用轉換子程序。 SWAP A MOV R1,A INC R0,例. 碼制轉換,ACALL TRAN;調用轉換子程序。 XCHD A,R1 INC R0 INC R1 DJNZ R7,AB HALT:SJMP HALT,TRAN:CLR C ;ASCII碼數(shù)轉換為十六進制數(shù)子程序 MOVX A,R0 SUBB A,#30H CJNEA,#0AH,BB AJMP BC BB:JCDONE BC:SUBB A,#07H;0AH,則再減07H DONE:RET, 數(shù)據(jù)排序程序 常用的有插入排序法、冒泡排序
28、法、快速排序法、選擇排序法、堆積排序法、二路歸并排序法及基數(shù)排序法等。 冒泡法是一種相鄰數(shù)互換的排序方法。 從前向后進行相鄰數(shù)比較,若數(shù)據(jù)的大小次序與要求的順序不符時(逆序),就將二數(shù)互換,正序時不交換,假定是升序排序,則通過這種相鄰數(shù)互換方法,使小數(shù)向前移,大數(shù)向后移,從前向后進行一次冒泡(相鄰數(shù)互換),把最大數(shù)換到最后,再進行一次冒泡,就會把次大數(shù)排在倒數(shù)第二,直至冒泡結束。,4.2.5 程序設計舉例,假定原始數(shù)據(jù)為5FH,38H,7H,13H,44H,D8H,22H 冒泡過程:5FH,38H,7H,13H,44H,D8HH,22H(逆序,則兩數(shù)互換) 38H,5FH,7H,13H,44H
29、,D8H,22H(逆序,則兩數(shù)互換) 38H,7H,5FH,13H,44H,D8H,22H(逆序,則兩數(shù)互換) 38H,7H,13H,5FH,44H,D8H,22H(逆序,則兩數(shù)互換) 38H,7H,13H,44H,5FH,D8H,22H(正序) 38H,7H,13H,44H,5FH,D8H,22H(逆序,則兩數(shù)互換),第一次冒泡結束: 38H,7H,13H,44H,5FH,22H,D8H 第二次冒泡結束:7H,13H,38H,44H,22H,5FH,D8H 第三次冒泡結束:7H,13H,38H,22H,44H,5FH,D8H 第四次冒泡結束:7H,13H,22H,38H,44H,5FH,D8
30、H 第五次冒泡結束:7H,13H,22H,38H,44H,5FH,D8H,說明: 每次冒泡都從向后排定了一個大數(shù)(升序),每次冒泡所需進行的比較次數(shù)都遞減,例如有n個數(shù)排序,則第一次冒泡需比較(n-1)次,第二次冒泡則需(n-2)次,實際編程中為了簡化程序,往往把各次比較次數(shù)都固定為(n-1)次。 對于n個數(shù),理論上說應進行(n-1)次冒泡才能完成排序,但實際上往往不到(n-1)次就已排好序。判定排序是否完成的最簡單方法是每次冒泡中是否有互換發(fā)生,如果有互換發(fā)生,說明排序還沒完成。 控制排序結束常不使用計數(shù)方法,而使用設置互換標志的方法,以其狀態(tài)表示在一次冒泡中有無數(shù)據(jù)互換進行。,在一組測量數(shù)
31、據(jù)中,挑選出大于標準m的數(shù)值作為合格的產(chǎn)品,而那些小于m 的數(shù)值作為不合格產(chǎn)品,則被剔除掉。 設數(shù)據(jù)組為X1、X2、X10共10個。 ORG0000H 0000H C2 00 PX:CLR 00;設交換過標志 0002H 7B 09 MOVR3,#09H;10個數(shù)據(jù)比較,第一次 ;比較兩個數(shù)據(jù),比較次數(shù)為(n-1)次 0004H 78 50 MOVR0,#50H;10個單元無符號數(shù)存;放首址 0006H E6 MOV A,R0,例 數(shù)據(jù)排序,0007H 08 PX1:INC R0 0008H F9 MOV R1,A 0009H 96 SUBB A , R0; DXDX+1 000AH E9 M
32、OV A , R1 000BH40 06 JC PX2 ; DXDX+1量交換標志位,20H.0=1,000FHC6 XCH A , R0; DX與 DX+1交換 0010H18 DEC R0 0011HC6XCH AVR0 0012H08 INC R0 0013HE6 PX2:MOV A , R0;A DX+1 0014HDB F1 DJNZ R3 , PX1;比較9次 0016H20 00 E7 JB 00H , PX ;有交換則再比較一遍 0019H80 FE END0:SJMP END0 執(zhí)行結果(50H)中為最小數(shù),(59H)中為最大數(shù)。,已知采樣值(無符號數(shù))存放在外部RAM 10
33、00H100FH中,試編程找出其中的最大值存入內部RAM區(qū)的20H中。 ORG0000H MOVR0,#10H;采樣值數(shù)據(jù)區(qū)長度 MOVDPTR,#1000H;采樣值存放首址 MOV20H,#00H ;最大值單元初始值設為最小數(shù) LP:MOVXA,DPTR;取采樣值 CJNEA,20H,CHK;數(shù)值比較 SJMPLP1;相等,則轉移,2.查找無符號數(shù)中最大值程序,CHK:JCLP1;A值小,轉移 MOV20H,A;A值大,則送20H LP1:INCDPTR DJNZR0,LP;繼續(xù) HERE:SJMP HERE;結束,注:20H中始終存放兩個數(shù)比較后的大值,比較結束后存放的即是最大值。 *若要尋找最小值,只要在初始化時,把可能的最大值放入最小值存放單元, 比較轉移用的標志位由C改為NC即可。,3.數(shù)據(jù)搜索程序 在數(shù)據(jù)區(qū)中尋找關鍵字,稱為數(shù)據(jù)搜索。常用的方法有兩種,即順序搜索和對分搜索。 順序搜索:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場應急演練計劃方案
- 養(yǎng)老產(chǎn)業(yè)項目運營全流程方案
- 高職學生職業(yè)技能提升方案
- 智能制造工廠數(shù)字孿生應用方案
- 股權激勵方案設計與實施流程指導
- 員工職業(yè)健康體檢管理方案與流程
- 安全員A證考試強化訓練高能及1套完整答案詳解
- 安全員A證考試模擬題庫及參考答案詳解(模擬題)
- 安全員A證考試試題預測試卷附參考答案詳解【輕巧奪冠】
- 路基工程施工技術方案實例解析
- 大數(shù)據(jù)驅動下的塵肺病發(fā)病趨勢預測模型
- 炎德英才大聯(lián)考雅禮中學2026屆高三月考試卷英語(五)(含答案)
- 【道 法】期末綜合復習 課件-2025-2026學年統(tǒng)編版道德與法治七年級上冊
- 2025-2026學年仁愛科普版七年級英語上冊(全冊)知識點梳理歸納
- TNAHIEM 156-2025 口內數(shù)字印模設備消毒滅菌管理規(guī)范
- 頂棚保溫施工組織方案
- 學校6S管理培訓
- DB15-T 4031-2025 建設項目水資源論證表編制導則
- 2025年事業(yè)單位考試(醫(yī)療衛(wèi)生類E類)職業(yè)能力傾向測驗試卷及答案指導
- 2025年江蘇省高考歷史真題(含答案解析)
- 系統(tǒng)解剖學章節(jié)練習題及答案
評論
0/150
提交評論