国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

梁偉

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

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

1 移位寄存器

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

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

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

由于CP接在一起作為脈沖控制端,當(dāng)?shù)?個CP脈沖上升沿到來時,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ù)改變。單向右移寄存器移位過程如下:

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

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

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

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

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

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

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

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

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

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

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

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

(5)編寫匯編程序:設(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 //單步運行(以下相同)

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

參考文獻(xiàn)

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

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

作者單位

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

猜你喜歡
左移右移觸發(fā)器
華容道玩法大解密
太極拳養(yǎng)生八式(上)
主從JK觸發(fā)器邏輯功能分析
使用觸發(fā)器,強化安全性
BMH2C單模匹配算法的研究與改進(jìn)
對觸發(fā)器邏輯功能轉(zhuǎn)換的分析
觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
開懷一笑