首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TASM位操作

TASM位操作
EN

Stack Overflow用户
提问于 2010-12-07 04:24:52
回答 1查看 1.2K关注 0票数 0

我需要显示矩阵(3x3)中的所有数字,其中number设置了两个第一位。我想我已经接近解决方案了,但是有些地方出了问题,你能指出哪里出了问题吗?

代码语言:javascript
复制
.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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-07 06:16:53

这取决于你所说的“前两个比特集合”是什么意思。如果您正在寻找两个最低的位,那么您编写的代码可以很好地工作。也就是说,位0和位1被设置。您在注释(3,6,7)中给出的示例可能输出3和7,因为它们设置了最低的两位。这就是:

代码语言:javascript
复制
3 = 00000011 binary
6 = 00000110 binary
7 = 00000111 binary

因此,只有3和7满足您在代码中编写的条件。

您似乎将“前两个比特”解释为数字以任何前导零之后的二进制序列"11“开头。如果这确实是您想要的解释,那么您必须使用左移位指令,直到高位设置为1,然后检查倒数第二位是否设置为1。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4370618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档