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

正文內(nèi)容

[工學(xué)]第3章匯編語(yǔ)言設(shè)計(jì)-資料下載頁(yè)

2025-10-07 18:44本頁(yè)面
  

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