-1

此代码应该计算: p/4+v/8 使用移位操作

Data Segment
Db p
Db v
Db q
Data ends
Code Segment
Assume cs:code,ds:data
Start: mov ax,p
       Shr ax,01
Mov cl,02
Shr ax,cl
Mov bx,ax
Mov ax,v
Shr ax,01
Mov cl,03
Shr ax,cl
Mov dx,q
add bx
Mov q,ax
Code ends
end

我的主要问题是:对我来说,我们似乎在计算 p/8+v/16?!!!1 因为我认为有 2 个班次操作是不需要的

4

1 回答 1

1

正如你所说,那段代码计算 p/8 + v/16。

每次向右移动 1 位就像是在进行整数除以 2。

因此,您应该从两个位置移除 SHR ax,01 以获得 p/8 + v/16

于 2011-04-29T17:15:58.863 回答