• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    移位寄存器及算術(shù)運(yùn)算應(yīng)用

    2018-03-22 01:31:40梁偉
    電子技術(shù)與軟件工程 2018年1期
    關(guān)鍵詞:左移右移觸發(fā)器

    梁偉

    寄存器被廣泛應(yīng)用于數(shù)字電路和計(jì)算機(jī)中,是由具有存儲(chǔ)功能的觸發(fā)器構(gòu)成的,移位寄存器在移位脈沖作用下依次逐位右移或左移,通過(guò)proteus模擬軟件進(jìn)行直觀分析移位寄存器移位功能,移位功能可應(yīng)用于CPU內(nèi)部寄存器進(jìn)行算術(shù)運(yùn)算。

    【關(guān)鍵詞】移位寄存器 CPU算術(shù)運(yùn)算

    1 移位寄存器

    寄存器被廣泛應(yīng)用于數(shù)字電路和計(jì)算機(jī)中,是由具有存儲(chǔ)功能的觸發(fā)器構(gòu)成的。移位寄存器具有代碼寄存和移位兩個(gè)功能,在移位脈沖的作用下,數(shù)碼如向左移一位,則稱為左移,反之稱為右移。移位寄存器具有單向移位功能的稱為單向移位寄存器,即可向左移也可向右移的稱為雙向移位寄存器。

    2 移位寄存器的算術(shù)運(yùn)算

    如圖1所示為由D觸發(fā)器組成的4位串行輸入-并行輸出左移位寄存器,圖中各觸發(fā)器的CP接在一起作為移位脈沖控制端(CP脈沖同步控制),數(shù)據(jù)從最低位觸發(fā)器D輸入,前一觸發(fā)器輸出端和后一觸發(fā)器D端連接。

    由于CP接在一起作為脈沖控制端,當(dāng)?shù)?個(gè)CP脈沖上升沿到來(lái)時(shí),D1觸發(fā)器輸出Q1是根據(jù)輸入數(shù)據(jù)D改變,D2觸發(fā)器Q2輸出是根據(jù)Q1數(shù)據(jù)改變,D3觸發(fā)器Q3輸出是根據(jù)Q2數(shù)據(jù)改變,D4觸發(fā)器Q4輸出是根據(jù)Q3的數(shù)據(jù)改變。單向右移寄存器移位過(guò)程如下:

    (1)清零,只要=0,觸發(fā)器直接置0。

    (2)接收數(shù)據(jù),當(dāng)=1時(shí),第1個(gè)CP脈沖后,輸入信號(hào)d4d3d2d1=1101左移1位,寄存器狀態(tài)從高位到低位為Q4Q3Q2Q1=0001。

    (3)第2個(gè)CP脈沖后,輸入信號(hào)d4d3d2d1=1101在移2位,寄存器狀態(tài)為Q4Q3Q2Q1=0011。

    (4)第3個(gè)CP脈沖后,輸入信號(hào)d4d3d2d1=1101在移3位,寄存器狀態(tài)為Q4Q3Q2Q1=0110。

    (5)第4個(gè)CP脈沖后,輸入信號(hào)d4d3d2d1=1101在移4位,寄存器狀態(tài)為Q4Q3Q2Q1=1101。

    即在四個(gè)CP脈沖作用后,數(shù)碼d4d3d2d1=1101恰好全部左移位串行輸入寄存器,寄存器輸出狀態(tài)從高位到低位為Q4Q3Q2Q1=1101從四個(gè)觸發(fā)器的輸出端并行輸出,完成串行輸入--并行輸出。要完成向右移位的串行輸入--串行輸出的寄存功能,還需要加入四個(gè)CP脈沖,才能完成寄存器中的1101依次移出,即8個(gè)CP脈沖完成串行輸入-串行輸出。

    寄存器移位功能可應(yīng)用于CPU進(jìn)行算術(shù)運(yùn)算,80X86 CPU內(nèi)部寄存器可以分為程序可見(jiàn)的寄存器和程序不可見(jiàn)的寄存器兩大類:程序可見(jiàn)的寄存器分為段寄存器(CS,DS,ES,SS);數(shù)據(jù)寄存器AX,BX,CX,DX等。數(shù)據(jù)寄存器用來(lái)存放計(jì)算的結(jié)果和操作數(shù),AX累加器,BX基址寄存器,CX計(jì)數(shù)器,DX數(shù)據(jù)寄存器,每個(gè)寄存器又有它們各自的專用目的。AX,BX,CX,DX都是16位的寄存器,每一個(gè)又可以分為高8位和低8位來(lái)使用,AH高8位,AL低8位。

    移位指令實(shí)現(xiàn)對(duì)操作數(shù)移位,包括算術(shù)移位指令、邏輯移位指令和循環(huán)移位指令。SHL和SAL指令的功能相同,使用這組指令除了可以實(shí)現(xiàn)基本的移位操作外,還可以用于對(duì)一個(gè)數(shù)進(jìn)行2n的倍增運(yùn)算,算術(shù)左移和邏輯左移指令SAL(SHL)格式與功能。

    (1)格式:SHL (SAL)OPR,CNT;對(duì)一個(gè)無(wú)(有)符號(hào)數(shù)的進(jìn)行2n的倍增。

    (2)功能:將OPR向左移動(dòng)CNT指定的次數(shù),最低位補(bǔ)入0,CF內(nèi)容為OPR最后移出位的值。

    (3)操作數(shù)的類型:OPR目標(biāo)操作數(shù) 通用寄存器;存儲(chǔ)器。源操作數(shù):1;CL。

    (4)標(biāo)志:根據(jù)結(jié)果設(shè)置ZF,SF,PF,OF,CF;AF未定義。

    (5)編寫(xiě)匯編程序:設(shè)(AL)=0000 1101B=13=0DH,則執(zhí)行5次左移指令后,(AL)=?

    data segment

    FIRST DW ?

    data ends

    code segment

    assume cs:code, ds:data

    start: MOV AX, DATA

    MOV DS, AX

    XOR AX,AX

    mov al,13

    shl al,1

    shl al,1

    shl al,1

    shl al,1

    shl al,1

    mov ah,4ch

    int 21h

    code ends

    end start

    D:\ASMSTU~1\SOURCE\OUT>debug shl.exe

    -ucs:0

    1638:0000 B82F16 MOV AX,162F

    ………

    AX=0000 BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    1638:0007 B00D MOV AL,0D // (AX)=0000H

    -t //單步運(yùn)行(以下相同)

    AX=000D BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    1638:0009 D0E0 SHL AL,1 // (AX)=000DH=13

    AX=001A BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    1638:000B D0E0 SHL AL,1 // (AX)= 001AH=26

    AX=0034 BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    1638:000D D0E0 SHL AL,1 // (AX)= 0034H=52

    AX=0068 BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    1638:000F D0E0 SHL AL,1 // (AX)= 0068H=104

    AX=00D0 BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    DS=162F ES=161F SS=1630 CS=1638 IP=0011 OV UP EI NG NZ NA PO NC

    1638:0011 D0E0 SHL AL,1 // (AX)= 00D0H=208 ,CY=0

    AX=00A0 BX=0000 CX=0353 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

    DS=162F ES=161F SS=1630 CS=1638 IP=0013 NV UP EI NG NZ NA PE CY

    1638:0013 B44C MOV AH,4C // (AX)= 00A0H=160 , CY=1

    經(jīng)過(guò)匯編程序調(diào)試運(yùn)行,觀察到(AL)=13,每執(zhí)行1次左移指令,(AL)×2,執(zhí)行5次左移指令后,(AX)=00A0H=160,CY=1,有進(jìn)位,256+160=416,即13×32=416。SHL指令功能是可以用于對(duì)一個(gè)數(shù)進(jìn)行2n倍增運(yùn)算,使用這種方法比直接使用乘除法效率要高得多。

    參考文獻(xiàn)

    [1]閻石主編.數(shù)字電子技術(shù)基礎(chǔ)[R].清華大學(xué)電子教研組,2011.

    [2]沈美明,溫冬嬋.IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[D].清華大學(xué),2013.

    作者單位

    大連計(jì)算機(jī)職業(yè)中專 遼寧省大連市 116034

    猜你喜歡
    左移右移觸發(fā)器
    “水溶液中的離子平衡”的“不一定”
    華容道玩法大解密
    太極拳養(yǎng)生八式(上)
    少林與太極(2018年8期)2018-08-26 05:53:58
    主從JK觸發(fā)器邏輯功能分析
    電子世界(2017年22期)2017-12-02 03:03:45
    使用觸發(fā)器,強(qiáng)化安全性
    C語(yǔ)言位運(yùn)算中鮮為人知的事
    軟件工程(2014年5期)2014-09-24 11:53:38
    對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
    觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
    開(kāi)懷一笑
    广德县| 井研县| 堆龙德庆县| 正宁县| 扶风县| 福建省| 长顺县| 大余县| 博客| 耿马| 通许县| 聂荣县| 神农架林区| 北安市| 台山市| 彭泽县| 子洲县| 清水河县| 九龙县| 祁连县| 延边| 司法| 玉田县| 隆尧县| 衢州市| 民权县| 水富县| 芦溪县| 和龙市| 景东| 高要市| 湘阴县| 海南省| 大邑县| 阿城市| 德保县| 西华县| 高密市| 富宁县| 澄城县| 民乐县|