組合語言將雙字(DX,AX)左移4 位

2021-09-21 13:37:59 字數 486 閱讀 3943

a100

mov cl,04;cl=4

shl dx,cl;dx左移四位,如果dx=8765,那就擠掉8,=8760

mov bx,0000;bx暫存器清零

mov bl,ah;ax的高八位給bx的低八位

shr bx,cl;bx右移四位,導致ax的高八位只剩高四位,也就是如果ax=4321,那麼本來轉過去的43只剩4,達到目的

and dl,f0;dx的第八位的後四位清零

add dl,bl;把bl給dl,效果就是di:***x0000+0000yyyy

shl ax,cl;成功把數轉過去了,ax就可以左移四位了

int 3;結束

r ax

r dx

附圖

執行前 dx=8765  ax=4321 執行後 dx=7654  ax=3210

組合語言 手記4

簡單的彙編指令 cpu執行後,暫存器中的資料改變為如下 cpu訪問記憶體單元時要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間。這個唯一的位址就是實體地址。16位結構描述了乙個cpu具有一下幾個方面特徵 1 運算器一次最多可以處理16位的資料。2 暫存器的最大寬度為16位。...

組合語言 手記4

簡單的彙編指令 cpu執行後,暫存器中的資料改變為如下 cpu訪問記憶體單元時要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間。這個唯一的位址就是實體地址。16位結構描述了乙個cpu具有一下幾個方面特徵 1 運算器一次最多可以處理16位的資料。2 暫存器的最大寬度為16位。...

64位組合語言簡介

現在已經是64位的時代了,x86 64 amd64 平台將是下一代計算機的體系結構,我們開發作業系統的當然要對x86 64的彙編有所了解。1.x86 64的暫存器 x86 64較x86 32多了8個通用暫存器,而且,每個通用暫存器都是64位寬,它們是 rax,rbx,rcx,rdx,rsi,rdi,...