目录
简单程序
DA4 EQU WORD PTR DA5
DA5 DB 0ABH,89H
...
SHR DA4,1
MOV DX,DA4
SHL DA5,1
MOV CX,DA4
首先前面是定义阶段 :
DA4 EQU WORD PTR DA5
该指令将
D
A
4
DA4
DA4和
D
A
5
DA5
DA5绑定在了一起
也就是如果
D
A
4
DA4
DA4发生变化
D
A
5
DA5
DA5也发生变化
但是
D
A
4
DA4
DA4的最小分割单位是
W
O
R
D
WORD
WORD字,也就是
16
16
16位
DA5 DB 0ABH,89H
这条指令将
D
A
5
DA5
DA5赋值为
89
A
B
H
89ABH
89ABH,小端方式倒着来
但是最小分割单位是
D
B
DB
DB字节,也就是
8
8
8位
SHR DA4,1
将
D
A
4
DA4
DA4逻辑右移一位
因为
D
A
4
DA4
DA4绑定
D
A
5
DA5
DA5
所以
D
A
4
DA4
DA4移动之后
89
A
B
−
>
44
D
5
H
89AB->44D5H
89AB−>44D5H
那么
D
A
5
=
44
D
5
H
DA5 = 44D5H
DA5=44D5H
MOV DX,DA4
将
D
A
4
DA4
DA4的值传给
D
X
DX
DX
SHL DA5,1
将
D
A
5
DA5
DA5逻辑左移一位
但是因为
D
A
5
DA5
DA5的最小可分割单位是 字节
所以知识第一个可分割单位左移
D
A
5
=
44
D
5
H
=
44
(
D
5
>
>
1
)
H
=
44
A
A
H
DA5=44D5H=44(D5>>1)H=44AAH
DA5=44D5H=44(D5>>1)H=44AAH
MOV CX,DA4
C
X
=
44
A
A
H
CX=44AAH
CX=44AAH
程序指令解析与移位操作
这篇博客详细解析了一个简单的程序段,涉及DA4和DA5的绑定、数据存储格式、逻辑移位以及数据传递。DA4与DA5在逻辑右移和左移操作中展现出不同的行为,说明了不同数据单位在移位操作中的差异。程序还涉及到DX和CX寄存器的使用,展示了汇编语言中的基本操作流程。
878

被折叠的 条评论
为什么被折叠?



