我需要显示矩阵(3x3)中的所有数字,其中number设置了两个第一位。我想我已经接近解决方案了,但是有些地方出了问题,你能指出哪里出了问题吗?
.model small
.stack 100h
.data
n equ 3
a dw n*n dup(?)
.code
extrn write:near
extrn read:near
begin:
mov ax,@data
mov ds,ax
mov cx,n*n
mov si,0
m1:
call read
mov a[si],ax
add si,2
loop m1
mov si,0
mov cx,n*n
m2:
mov bx, a[si]
test bx,1
jz net
test bx,2
jz net
mov ax,a[si]
call write
net:
add si,2
loop m2
mov ah,4ch
int 21h
end begin发布于 2010-12-07 06:16:53
这取决于你所说的“前两个比特集合”是什么意思。如果您正在寻找两个最低的位,那么您编写的代码可以很好地工作。也就是说,位0和位1被设置。您在注释(3,6,7)中给出的示例可能输出3和7,因为它们设置了最低的两位。这就是:
3 = 00000011 binary
6 = 00000110 binary
7 = 00000111 binary因此,只有3和7满足您在代码中编写的条件。
您似乎将“前两个比特”解释为数字以任何前导零之后的二进制序列"11“开头。如果这确实是您想要的解释,那么您必须使用左移位指令,直到高位设置为1,然后检查倒数第二位是否设置为1。
https://stackoverflow.com/questions/4370618
复制相似问题