汇编网首页登录博客注册
yang5731的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2011-02-10 18:38] 写一个程序片段实现把AL和BL中的位依次交叉,得到的16位结果存放到DX中

assume cs:code
data segment
var db 1                ;变量
data ends
code segment
start:        mov ax,data
        mov ds,ax
        xor dx,dx        ;DX保存结果
        xor cx,cx        ;CX用来确定DX的位
        xor si,si
        xor ah,ah
        xor bh,bh
s:        mov al,10111010b
        mov bl,10111011b        
        and al,var        ;循环取位  双数位0,2,4,··14
        and bl,var        ;循环取位  单数位1,3,5,··15
        shl ax,cl
        add dx,ax
        inc cl
        shl bx,cl
        add dx,bx
        
        shl var,1        ;
        cmp cx,8
        je over
        jmp s
        
over:        mov ax,4c00h
        int 21h
code ends
end start
评论次数(0)  |  浏览次数(753)  |  类型(章节要点) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码