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

正文內(nèi)容

[工學]第3章匯編語言設(shè)計-資料下載頁

2025-10-07 18:44本頁面
  

【正文】 7。 指令系統(tǒng)提供了非常有用的兩種多分支選擇指令 : 間接轉(zhuǎn)移指令 : JMP @A+DPTR。 比較轉(zhuǎn)移指令 : CJNE A,direct,rel; CJNE A,data,rel; CJNE Rn,data,rel; CJNE @Ri,data,rel; 最簡單的分支轉(zhuǎn)移程序的設(shè)計,一般常采用逐次比較法,就是把所有不同的情況一個一個的進行比較,發(fā)現(xiàn)符合就轉(zhuǎn)向?qū)?yīng)的處理程序。這種方法的主要缺點是程序太長,有 n種可能的情況,就需有 n個判斷和轉(zhuǎn)移。 例 312 求符號函數(shù)的值。 程序框圖如圖 36所示。 程序 略。 在實際的應(yīng)用中,經(jīng)常遇到的圖 37結(jié)構(gòu)形式的分支轉(zhuǎn)移程序的設(shè)計 。 需根據(jù)某一單元的內(nèi)容是 0, 1, …… , n,來分別轉(zhuǎn)向處理程序 0,處理程序 1, …… 處理程序 n。一個典型的例子就是當單片機系統(tǒng)中的鍵盤按下時,就會得到一個鍵值,根據(jù)不同的鍵值,跳向不同的鍵處理程序入口。對于這種情況,可用直接轉(zhuǎn)移指令( LJMP或 AJMP指令)組成一個轉(zhuǎn)移表,然后把該單元的內(nèi)容讀入累加器 A,轉(zhuǎn)移表首地址放入 DPTR中,再利用間接轉(zhuǎn)移指令實現(xiàn)分支轉(zhuǎn)移。 例 312 根據(jù)寄存器 R2的內(nèi)容 , 轉(zhuǎn)向各個處理程序PRGX( X=0~n) 。 ( R2) =0, 轉(zhuǎn) PRG0 ( R2) =1, 轉(zhuǎn) PRG1 ┇ ( R2) =n, 轉(zhuǎn) PRGn 循環(huán)程序設(shè)計 特點是程序中含有可以反復(fù)執(zhí)行的程序段,該程序段通常稱為循環(huán)體。例如求 100個數(shù)的累加和,則沒有必要連續(xù)安排 100條加法指令,可以只用一條加法指令并使其循環(huán)執(zhí)行 100次。 ( 1)可大大縮短程序長度( 2)使程序所占的內(nèi)存單元數(shù)量少( 3)使程序結(jié)構(gòu)緊湊和可讀性變好。 一、循環(huán)程序的結(jié)構(gòu) 循環(huán)結(jié)構(gòu)程序主要由以下四部分組成。 1.循環(huán)初始化 循環(huán)初始化程序段用于完成循環(huán)前的的準備工作。例如,循環(huán)控制計數(shù)初值的設(shè)置、地址指針的起始地址的設(shè)置、為變量預(yù)置初值等。 2. 循環(huán)處理 循環(huán)程序結(jié)構(gòu)的核心部分 , 完成實際的處理工作 , 是需反復(fù)循環(huán)執(zhí)行的部分 , 故又稱循環(huán)體 。 這部分程序的內(nèi)容 , 取決于實際處理問題的本身 。 3. 循環(huán)控制 在重復(fù)執(zhí)行循環(huán)體的過程中 ,不斷修改循環(huán)控制變量 ,直到符合結(jié)束條件 ,就結(jié)束循環(huán)程序的執(zhí)行 。 循環(huán)結(jié)束控制方法分為循環(huán)計數(shù)控制法和條件控制法 3. 循環(huán)結(jié)束 這部分是對循環(huán)程序執(zhí)行的結(jié)果進行分析、處理和存放。 二、循環(huán)結(jié)構(gòu)的控制 圖 38是計數(shù)循環(huán)控制結(jié)構(gòu),圖 39是條件控制結(jié)構(gòu)。 1.計數(shù)循環(huán)結(jié)構(gòu) 計數(shù)循環(huán)控制結(jié)構(gòu)是依據(jù)計數(shù)器的值來決定循環(huán)次數(shù),一般為減 “ 1” 計數(shù)器,計數(shù)器減到 “ 0”時,結(jié)束循環(huán)。計數(shù)器的初值是在初始化時設(shè)定。 MCS51的指令系統(tǒng)提供了功能極強的循環(huán)控制指令: DJNZ Rn,rel;工作寄存器作控制計數(shù)器 DJNZ direct,rel;以直接尋址單元作控制計數(shù) 器。 例如,計算 n個數(shù)據(jù)的和。 程序框圖見圖 310 。 計數(shù)控制方法只有在循環(huán)次數(shù)已知的情況下才適用。對循環(huán)次數(shù)未知的問題,不能用循環(huán)次數(shù)來控制。往往需要根據(jù)某種條件來判斷是否應(yīng)該終止循環(huán)。 2. 條件控制結(jié)構(gòu) 例 315 設(shè)有一串字符 , 依次存放在內(nèi)部 RAM從 30H單元開始的連續(xù)單元中 , 該字符串以 0AH為結(jié)束標志 ,編寫測試字符串長度的程序 。 本例采用逐個字符依次與 “ 0AH”比較的方法 。 為此設(shè)置一個長度計數(shù)器和一個字符串指針 。 長度計數(shù)器用來累計字符串的長度 , 字符串指針用于指定字符 。如果指定字符與 “ 0AH”不相等 , 則長度計數(shù)器和字符串指針都加 1, 以便繼續(xù)往下比較;如果比較相等 , 則表示該字符為 “ 0AH”, 字符串結(jié)束 , 長度計數(shù)器的值就是字符串的長度 。 程序略 。 最常見的多重循環(huán)是由 DJNZ指令構(gòu)成的軟件延時程序 ,它是常用的程序之一 。 例 316 50ms延時程序 。 延時程序與 MCS51指令執(zhí)行時間有很大的關(guān)系 。在使用 12MHz晶振時 , 一個機器周期為 1181。s,執(zhí)行一條 DJNZ指令的時間為 2181。s。 這時 , 可用雙重循環(huán)方法寫出下面如下的延時 50ms的程序: DEL: MOV R7,200 DEL1: MOV R6,125 DEL2: DJNZ R6,DEL2 ; 125*2=250181。s DJNZ R7,DEL1 ; *200=50ms RET 以上延時程序不太精確 , 它沒有考慮到除 “ DJNZ R6,DEL2 ”指令外的其它指令的執(zhí)行時間 , 如把其它指令的執(zhí)行時間計算在內(nèi) , 它的延時時間為: ( 250+1+2) *200+1= 如果要求比較精確的延時 , 可按如下修改: DEL: MOV R7,200 DEL1: MOV R6,123 NOP DEL2: DJNZ R6,DEL2 ; 2*123+2=238181。s DJNZ R7,DEL1 ; (238+2)*200+1= RET 實際延遲時間為 , 注意 。 軟件延時程序 , 不允許有中斷 , 否則將嚴重影響定時的準確性 。 碼制轉(zhuǎn)換程序設(shè)計 在單片機應(yīng)用程序的設(shè)計中,經(jīng)常涉及到各種碼制的轉(zhuǎn)換問題。在單片機系統(tǒng)內(nèi)部進行數(shù)據(jù)計算和存儲時,經(jīng)常采用二進制碼,具有運算方便、存儲量小的特點。在輸入 /輸出中,按照人的習慣均采用代表十進制數(shù)的 BCD碼(用 3位二進制數(shù)表示的十進制數(shù))表示。此外,打印機要打印某數(shù)字字符,則需要將該數(shù)字的二進制碼轉(zhuǎn)換為該字符的 ASCII碼,才能送到打印機去打印。 一、二進制碼到 BCD碼的轉(zhuǎn)換 BCD碼有兩種形式:一種是 1個字節(jié)放 1位 BCD碼 ,它適用于顯示或輸出,一種是 壓縮的 BCD碼 ,即 1個字節(jié)放兩位 BCD碼,可以節(jié)省存儲單元。 二、 BCD碼到二進制碼的轉(zhuǎn)換 三、二進制碼與 ASCII碼之間的轉(zhuǎn)換
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1