大小端,汇编指令,if和swith的区别,左移右移等

一,大小端问题

大端:低地址放低数据  如:手机,网络等

小端:低地址放高数据   如:PC,Inter

如何用指针或结构体判断大小端

指针:

#include <stdio.h>    
#include <stdlib.h>  
//用指针的方式检测机器的大小端模式  
int small_port()  
{  
    int a = 1 ;   
    char b = *((char *)(&a)) ;  
    return b ;  
}  
int main(void)  
{  
    int i = small_port();  
    if(1 == i)  
        printf("小端模式\n");  
    else  
        printf("大端模式\n");  
    return 0 ;    
}   
结构体:
void IsBigEndian()
{
 short int a = 0x1122;//十六进制,一个数值占4位
 char b =  *(char *)&a;  //通过将short(2字节)强制类型转换成char单字节,b指向a的起始字节(低字节)
 if( b == 0x11)//低字节存的是数据的高字节数据
 {
  //是大端模式
 }
 else
 {
  //是小端模式
 }
}

二,汇编指令

MOV 

功能: 把源操作数送给目的操作数
语法: MOV 目的操作数,源操作数
格式: MOV r1,r2
MOV r,m
MOV m,r
MOV r,data
PUSH
功能: 把操作数压入或取出堆栈
语法: PUSH 操作数 
格式: PUSH r PUSH M PUSH data 
ADD:加法指令
CMP
功能: 比较OP1与OP2的值
CALL
功能: 子程序调用,返回指令
EAX  "累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX  "基地址"(base)寄存器, 在内存寻址时存放基地址。
ECX  计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
ESP  专门用作堆栈指针,被形象地称为栈顶指针,堆栈的顶部是地址小的区域,压入堆栈的数据越多,ESP也就越来越小。在32位平台上,ESP每次减少4字节。
dword ptr 里的数据是一个地址值,这个地址指向一个双字型数据。
三,if和swith有什么区别
if的括号内的表达式可以分别是bool的合法表达式、可以是所有大于0的正整数为true,反之为小于等于0的正整数为false、可以是常量、枚举;而switch括号内也符合前面if提到的外,就是当圆括号内为正整数只能是0或1,其它的正整数属于 default范围。
四,左移右移
>>右移   除法  
<<左移   乘法
例:
11    0000 1011 
13    00001101 
  ~     11110100  按位取反
|    0000 1111 按位或
&     0000 1001 取地址,按位与
^     0000 0110 异或
11>>1    00000101  5   右移,除法
11>>2    00000010  2
11>>3    00000001  1
11<<1    00010110  22   左移,乘法
11<<2    00101100  44  
五,前缀和后缀
j=i++:j=i,i+1.先计算再++
j=++i:i=i+1,j=i.先++再计算
注:i++与++i不在表达式内无区别   

六,*的作用:(1)指针(2)乘法(3)解引用

七,sizeof:求字节大小
sizeof(int)必须带括号  
sizeof a 变量可加可不加

八,求余数:10%3   -10%3  10%-3   -10%-3

                      1          -1          1             -1












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值