zoukankan      html  css  js  c++  java
  • 汇编 MOVSX与MOVZX 指令

    知识点:
     MOVSX符号扩展传送
     MOVZX零扩展传送
    
    
    一、MOVSX与MOVZX格式
    MOVSX 操作数A ,操作数B
    MOVZX 操作数A ,操作数B
    相同点:操作数B 空间必须小于 操作数A
    1、格式与MOV基本相同
    2、能完成小存储单元向大存储单元的数据传送 比如 movsx eax,bx  movzx ebx,ax     movsx eax,bx
    
    MOVSX,MOVZX 与MOV指令区别:
      1、MOVSX,MOVZX的操作数B所占空间必须小于操作数A. 
      2、MOV指令是原值传送,不会改动。而MOVSX与MOVZX有可能会改动
    MOVSX与MOVZX的区别:
     1、MOVSX将用操作数B的符号位扩展填充操作数A的余下空间,如果是负数则符号位为1,如果是正数则和MOVZX功能相同
     2、MOVZX将用0来扩展填充操作数A的余下空间。
                
    操作数A
    
    操作数B
                
    
    
    
    二、代码测试
         int i=0x888;
        char ci=-100;
        printf("
    ");
        i=ci;  //111111111111111111111111  11001101
        i=(unsigned char)ci; //             11001101
    printf("");
    
    char 0-FF  //FF/2
    DWORD 0-0xFFF 8F8F
    
    三、作业:
      1、测试一下,下边的写法是否正确,想一想为什么? 
      mov eax,cx
      movsx bx,bl
      movzx bh,bl
      movsx ax,byte ptr ds:[ebx]
      movzx [ebx],ax
  • 相关阅读:
    AGC005D ~K Perm Counting
    运行python脚本后台执行
    java枚举类型
    java可变参数长度
    java 泛型数组列表
    java抽象类
    java final使用
    java继承
    java 对象
    java 重载
  • 原文地址:https://www.cnblogs.com/whzym111/p/6364234.html
Copyright © 2011-2022 走看看