1.下列程序段完成的功能是                    。
 MOV     CL,04
 SHR     AX,CL
 MOV     BL,DL
 SHR     DX,CL
 SHL     BL,CL
 OR      AH,BL

解决方案 »

  1.   

    什么东西?
    和java有关啊?
     看来我菜的很哦,没看懂什么意思
      

  2.   

    MOV    CL,04 
    SHR    AX,CL 
    MOV    BL,DL 
    SHR    DX,CL 
    SHL    BL,CL 
    OR      AH,BL
    这是汇编语言,先去学习其基础知识吧,不过汇编比较难学,指令多(什么寻址方式啊,记不得啦,大学学过),基本上类似机器指令,执行效率相当高。
      

  3.   

    纯baidu来的,给大家解解闷:
    mov  cl,4  ;把十进制4赋给clshr  ax,cl  ;ax算术右移4位,例子:若ax=1010101110111010,则运算有ax=0000101010111011mov bl, dl  ;把dl的值给blshr dx,cl  ;dx算术右移4位shl bl,cl  ;bl 算术左移4位or ah ,bl ;ah和bl或运算,如上ax的值,则ah=00001010,设bl=10101000,则结果ah=10100010
    我想这段代码的本来目的是将DX:AX中的双字数“右”移4位 http://wenwen.soso.com/z/q141558754.htm但他跟里面这位仁兄貌似犯了同样的错误……就是最后的or ah,bl(此时ah的高四位算术右移后均为0,所以这里也等于mov ah,bl)因为ah,bl是8位的,所以这里并不能实殃mov ah,bl的功能……本来他的目的是dx没移动前的低4位跟ax移动后的高4位(算术移动高4位全0)与或运算,也即是mov ah,bl所以这串代码不能实现什么……跟里面的那位仁兄犯了同样的错误……要实现移位操作,可以按下面写的实现…… mov cx,4
    next:
    shl dx,1;逻辑左移1位,低位赋0
    shl ax,1
    jz jump;判断,ax最高位移置CF,否判是否为0
    xor dx,1;CF为1,即ax最高位为1,所以dx最低位赋1
    jump:
    loop next
      

  4.   

    纯baidu来的,给大家解解闷: 
    mov  cl,4  ;把十进制4赋给cl shr  ax,cl  ;ax算术右移4位,例子:若ax=1010101110111010,则运算有ax=0000101010111011 mov bl, dl  ;把dl的值给bl shr dx,cl  ;dx算术右移4位 shl bl,cl  ;bl 算术左移4位 or ah ,bl ;ah和bl或运算,如上ax的值,则ah=00001010,设bl=10101000,则结果ah=10100010 
    我想这段代码的本来目的是将DX:AX中的双字数“右”移4位 http://wenwen.soso.com/z/q141558754.htm但他跟里面这位仁兄貌似犯了同样的错误……就是最后的or ah,bl(此时ah的高四位算术右移后均为0,所以这里也等于mov ah,bl)因为ah,bl是8位的,所以这里并不能实殃mov ah,bl的功能……本来他的目的是dx没移动前的低4位跟ax移动后的高4位(算术移动高4位全0)与或运算,也即是mov ah,bl所以这串代码不能实现什么……跟里面的那位仁兄犯了同样的错误……要实现移位操作,可以按下面写的实现…… mov cx,4 
    next: 
    shl dx,1;逻辑左移1位,低位赋0 
    shl ax,1 
    jz jump;判断,ax最高位移置CF,否判是否为0 
    xor dx,1;CF为1,即ax最高位为1,所以dx最低位赋1 
    jump: 
    loop next