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

正文內容

06-第四章程序設計(存儲版)

2025-02-03 03:15上一頁面

下一頁面
  

【正文】 n END計算機與通信工程學院 散轉程序設計n 散轉程序是分支程序的一種。n 這時可以用轉移指令 AJMP(或 LJMP)組成一個轉移表n 例 416: 根據(jù) R6的內容,轉向各個處理程序n MOV DPTR, TAB1n MOV A, R6n ADD A, R6n PAD: JMP A+DPTRn TAB1: AJMP LOP0n AJMP LOP1n AJMP LOP2n 本例僅適用于散轉表首地址 TAB1和處理程序入口地址 LOP0,LOP1, ……LOPn在同一個 2K范圍的存儲區(qū)的情況。n 調用子程序有幾個優(yōu)點:n 避免對相同程序段的重復編制。n 缺點n 工作寄存器數(shù)量有限,不能傳遞太多的數(shù)據(jù);n 主程序必須先把數(shù)據(jù)送到工作寄存器;n 參數(shù)個數(shù)固定,不能由主程序任意改定。利用 MS51的帶進位加法指令,可以直接編寫出下面的程序。取出參數(shù)n ANL A,0FHn MOV DPTR,DATA1n MOVC A,A+DPTRn XCH A,R0 。n 如果有許多常數(shù)參數(shù),這種技術不太有效,每個參數(shù)需要一個寄存器傳遞,并且在每次調用子程序時需分別用指令把它們裝入寄存器中。n 為了簡便,也可把字符串放在 EPROM獨立區(qū)域中,然后用傳遞字符串首地址的方法來傳遞參數(shù)。n 它可適用與 ACALL或 LCALL,因為這兩種調用指令均把下一條指令或數(shù)據(jù)字節(jié)的地址壓入棧中。n TAB: n DB 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H n DB 80H, 40H, 20H, 10H, 08H, 04H, 02H, 01H n DB 00H, 0FFH, 00H, 0FFH, 00H,0FFH, 03Hn DEL: MOV R7, 0FFHn DEL1: MOV R6, 0FFHn DEL2: DJNZ R6, DEL2n DJNZ R7, DEL1n RETn END n ORG 0000Hn START: n MOV R0, 00Hn LOOP: n CLR A n MOV A, R0n ADD A, 0CHn MOVC A, A+PCn CJNE A, 03H, LOOP1n JMP STARTn LOOP1: n MOV P1, An ACALL DELn INC R0n JMP LOOP計算機與通信工程學院用 MOVC A, A+DPTR查表指令編程n 例: 用查表方法編寫彩燈控制程序,編程使彩燈先順次點亮,再逆次點亮,然后連閃三下,反復循環(huán)。n 查表,就是根據(jù)變量 x在表格中查找 y,使 y=f( x)。 計算機與通信工程學院例 22:總結n 上面子程序有幾個特點:n 它不以一般的返回指令結尾,而是采用 基寄存器加變址寄存器間接轉移指令來返回到參數(shù)表后的第一條指令 。這些字符串,通常放在 EPROM(程序存貯器)中。ABCDEF39。 計算機與通信工程學院例 419 一位十六進制數(shù)轉換為 ASCII碼子程序n HASC: MOV R0, SPn DEC R0n DEC R0 ; R0為參數(shù)指針n XCH A, R0 ;保護 ACC,取出參數(shù)n ANL A, 0FH n ADD A, 2 ;加偏移量n MOVC A, A+PCn XCH A, R0 ;查表結果放回堆棧中n RETn DB ‘0123456789’ ;十六進制數(shù)的 ASCII字符表n DB ‘ABCDEF’計算機與通信工程學院例 421 一個字節(jié)的兩位十六進制數(shù)為轉換為兩個 ASCII碼子程序n ORG 0000Hn AJMP STARTn ORG 0030Hn START:n MOV SP,60Hn MOV 40H,7FHn PUSH 40Hn MOV A,78hn LCALL HTA2n AJMP STARTn HTA2: MOV R0,SPn DEC R0n DEC R0n PUSH ACC 。 n 例 : 將( R0)和( R1)指出的內部 RAM中兩個 3字節(jié)無符號整數(shù)相加,結果送(R0)指出的內部 RAM中。計算機與通信工程學院工作寄存器或累加器傳遞參數(shù)n 把入口參數(shù)或出口參數(shù)放工作寄存器或累加器中。n 一些常用的程序段,以子程序的形式,事先存放在存儲器的某一區(qū)域n 主程序在運行時,需要用子程序時,只要執(zhí)行調用子程序的指令,使程序轉至子程序。n 執(zhí)行 JMP A+DPTR指令后,累加器和 16位數(shù)據(jù)指針的內容均不受影響。n ( 2)外循環(huán)可以一層層向內循環(huán)進入,結束時由里往外一層層退出。n 程序如下:n ORG 8000Hn SAD: MOV R0, 40H ;設數(shù)據(jù)指針n MOV R5, NUM ; 計數(shù)值 0AH→ R5n SAD1: MOV R2, 0 ; 和的高 8位清零n MOV R3, 0 ; 和的低 8位清零n LOOP: MOV A, R3 ; 取加數(shù)n ADD A, R0n MOV R3, A ; 存和的低 8位n JNC LOP1 ; 無進位,直接計算高 8位n INC R2 ; 有進位,和的高 8位 +1n LOP1: INC R0 ; 指向下一數(shù)據(jù)地址n DJNZ R5, LOOPn RETn NUM EQU 0AHn END n 上述程序中,用 R0作間址寄存器,每作一次加法, R0加 1,數(shù)據(jù)指針指向下一數(shù)據(jù)地址, R5為循環(huán)次數(shù)計數(shù)器,控制循環(huán)的次數(shù)。n 通常 4部分又稱為循環(huán)體。重復次數(shù)越多,循環(huán)程序的優(yōu)越性就越明顯。存大數(shù)n SJMP $n BIG1:n MOVX A,DPTR。n ST1 EQU 8040Hn ORG 0000Hn JMP STARTn ORG 0030Hn START:n MOV DPTR,ST1n MOV A,12Hn MOVX DPTR,An INC DPTRn MOV A,34Hn MOVX DPTR,An LOOP:n CLR C 。計算機與通信工程學院例 41兩個 8位無符號數(shù)相加n ORG 0000Hn AJMP BEGINn ORG 0030Hn BEGIN:n MOV 40H,01Hn MOV 41H,02Hn LOOP:n MOV R0,40Hn MOV A,R0n INC R0n ADD A,R0n INC R0n MOV R0,An JMP LOOPn END開始R0←40HA← ( R0)A送( 42H)( 40H) +( 41H)和送 A
點擊復制文檔內容
外語相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1