青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天下

記錄修行的印記

C++整數、浮點數、結構體的返回值

 

#include "stdafx.h"


struct person{
    
int age;
    
int sex;
    
char name[20];
};

struct person GetPerson(int age,int sex,char* name)
{
    
struct person p;
    p.age 
= age;
    p.sex 
= sex;
    strcpy(p.name,name);
    
return p;
}

int main()
{
    
int m = 0x7ffff123;
    
int n = 0x7ffff456;
    
int k = 0x7fffffff;

    
//匯編指令:imul,mul
    long long x = (long long)(m * n);    //返回值類型為 int,然后強制轉換為long long,最后賦值給x,
    long long y = (long long)m * n;        //返回值類型為 long long,然后賦值給y,注意強制類型轉換括號的位置,
    

    
long long z = m * n;                //返回值類型為 int,然后賦值給x.
/*

匯編指令:
    004114BC  mov         eax,dword ptr [m] 
    004114BF  imul        eax,dword ptr [n] 
    004114C3  cdq          //數據擴展指令,將雙字數據擴展為四字類型
    //CDQ—Convert Double to Quad (386+),該指令把edx擴展為eax的高位,也就是說變為64位。     
    004114C4  mov         dword ptr [z],eax 
    004114C7  mov         dword ptr [ebp-4Ch],edx 
*/

    printf(
"m = %d,n = %d \n",m,n);
    printf(
"x = %lld\n",x);
    printf(
"y = %lld\n",y);
    printf(
"z = %lld\n",z);





    
int m1 = 8;
    
int n1 = 3;
    
int k1 = m1/n1;

    
double k2 = m1/n1;        //返回值類型為 int,然后賦值給k2,匯編指令:idiv
/*

匯編指令:
    0041155E  mov         eax,dword ptr [m1] 
    00411561  cdq              
    00411562  idiv        eax,dword ptr [n1] 
    00411565  mov         dword ptr [ebp-1F4h],eax 
    0041156B  fild        dword ptr [ebp-1F4h] 
    00411571  fstp        qword ptr [k2] 

    fild和fstp都是x87指令 
    fild浮點加載整數 然后轉換為長雙精度  
    fild是將整數轉化為長雙精FP80壓棧(壓到st0),
    fstp是將彈棧指令,將st0彈出。

*/


    
double k3 = (double)(m1/n1);    //返回值類型為 int,然后強制轉換為double,最后賦值給k3,匯編指令:idiv


    
double k4 = (double)m1/n1;        //返回值類型為double,然后賦值給k4,注意強制類型轉換括號的位置,匯編指令:fidiv
/*

    匯編指令:
    00411590  fild        dword ptr [m1] 
    00411593  fidiv       dword ptr [n1] 
    00411596  fstp        qword ptr [k4] 
*/

    printf(
"k1=%d \r\n",k1);
    printf(
"k2=%f \r\n",k2);
    printf(
"k3=%f \r\n",k3);
    printf(
"k4=%f \r\n",k4);

    
char l1 = 127;
    
char l2 = 122;
    
int  l3 = l1* l2;
/*
匯編指令:
    0041162E  movsx       eax,byte ptr [l1] 
    00411635  movsx       ecx,byte ptr [l2] 
    0041163C  imul        eax,ecx 
    0041163F  mov         dword ptr [l3],eax 
*/



    
char l4 = l1* l2;
/*
    匯編指令:
    00411645  movsx       eax,byte ptr [l1] 
    0041164C  movsx       ecx,byte ptr [l2] 
    00411653  imul        eax,ecx 
    00411656  mov         byte ptr [l4],al 
*/




    
int l5 = l1/l2;
    
int l6 = double(l1)/l2;


    
long double k5 = l1* l2;
/*
    匯編指令:
    004116A6  movsx       eax,byte ptr [l1] 
    004116AD  movsx       ecx,byte ptr [l2] 
    004116B4  imul        eax,ecx 
    004116B7  mov         dword ptr [ebp-1F4h],eax 
    004116BD  fild        dword ptr [ebp-1F4h] 
    004116C3  fstp        qword ptr [k5] 
*/


    printf(
"l3=%d \r\n",l3);
    printf(
"l4=%d \r\n",l4);
    printf(
"k4=%lf \r\n",k5);

    
long long o1 = 0xff34567812345677;    
    
long long o2 = 0xab34567834125615;
    
long long o3 = o1 * o2;    //溢出

    
int age = 5;
    
int sex = 1;
    
char name[20= "Aaron";

    
struct person p1 = {5,1,"Aaron"};
    
struct person p2;
    
struct person* pp1 = &p1;
    
struct person* pp2 = &p2;
    p2
= p1;
/*
匯編指令:
00414348  mov         ecx,7 
0041434D  lea         esi,[ebp-188h] 
00414353  lea         edi,[ebp-1ACh] 
00414359  rep movs    dword ptr es:[edi],dword ptr [esi] 

//ecx 是計數器(counter),是重復(REP)前綴指令和LOOP指令的內定計數器。
因為sizeof(person) = 28,所以才有mov ecx,7 
*/


    
struct person p3;
    p3
= GetPerson(age,sex,name);


//結論:
/*

整數類型:
    小于等于4字節的返回值放在eax中,
    8字節的返回值放在edx + eax中,其中edx為高位,eax為低位.

浮點數類型:
計算是通過壓棧的方式,如匯編指令:fild
返回是通過出棧的方式,如匯編指令:fstp

結構體類型賦值:
是通過內存拷貝的方式,如匯編指令:rep movs
將源值的地址放入esi,
將目標值的地址放入edi,

00414393  lea         esi,[ebp-2D8h] 
00414399  lea         edi,[ebp-1D0h] 
0041439F  rep movs    dword ptr es:[edi],dword ptr [esi] 


結構體類型返回值:
通過eax將結構體的指針返回
*/

    system(
"pause");
    
return 0;
}
//111111111111111111111111111111
//00000000000000000000000000000001
//
//111111111111111111001010111100
//10000000101011010101110111000010
//取反加一 1111111010100101010001000111110
//11111001111111111111111111111110000011000

//11111111111111111111110000011000
//1111101000


//11111010000000000000000000000000000000000 = 0
//00000000000000000000000000000000
//
//1111111111111111111110000011000

 

posted on 2013-03-01 10:16 天下 閱讀(1120) 評論(0)  編輯 收藏 引用 所屬分類: C/C++匯編語言

<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

常用鏈接

留言簿(4)

隨筆分類(378)

隨筆檔案(329)

鏈接

最新隨筆

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线播放日韩| 亚洲美女一区| 国产有码一区二区| 一区二区三区久久久| 欧美va天堂| 久久综合九色综合网站| 国产欧美日韩一区二区三区在线| 日韩视频不卡| 欧美激情中文不卡| 老色批av在线精品| 亚洲国产精品久久人人爱蜜臀| 久久久水蜜桃av免费网站| 亚洲欧美综合国产精品一区| 国产精品成人免费视频 | 亚洲午夜视频| 亚洲免费精彩视频| 欧美日韩一区二区在线视频| 亚洲一级免费视频| 亚洲摸下面视频| 国产婷婷一区二区| 久久久久国色av免费看影院| 久久久水蜜桃| 99精品久久久| 亚洲视频在线看| 国产中文一区二区| 亚洲高清免费视频| 欧美激情一区三区| 亚洲欧美一区二区视频| 久久黄色小说| 一本久久青青| 欧美在线欧美在线| 亚洲精品看片| 亚洲自拍另类| 亚洲韩日在线| 亚洲综合精品| 1000部精品久久久久久久久| 亚洲国产视频直播| 国产精品久久波多野结衣| 久久成人精品一区二区三区| 久久噜噜噜精品国产亚洲综合| 亚洲精品国产日韩| 亚洲综合色噜噜狠狠| 亚洲春色另类小说| 一区二区三区偷拍| 影音先锋久久久| 一区二区三区蜜桃网| 在线观看国产精品淫| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品亚洲成人| 亚洲国产精品久久久久秋霞蜜臀 | 你懂的一区二区| 欧美了一区在线观看| 久久久国产精品亚洲一区| 欧美激情网友自拍| 六月婷婷久久| 国产精品一区=区| 亚洲国产日韩精品| 国内不卡一区二区三区| 9l国产精品久久久久麻豆| 狠狠色伊人亚洲综合成人| 99国内精品久久久久久久软件| 极品少妇一区二区三区精品视频| 在线性视频日韩欧美| 日韩一级精品视频在线观看| 欧美在线精品免播放器视频| 夜夜嗨av一区二区三区网页| 国产精品激情av在线播放| 欧美 日韩 国产一区二区在线视频 | 国产有码在线一区二区视频| av成人免费| 91久久精品美女高潮| 黑人中文字幕一区二区三区| 日韩视频三区| 亚洲伦伦在线| 免费成人激情视频| 蜜桃久久av一区| 国产综合久久久久久| 亚洲免费在线看| 亚洲欧美日韩一区二区| 国产精品第13页| 99在线|亚洲一区二区| 亚洲人成77777在线观看网| 另类图片国产| 亚洲成色精品| 亚洲伦理网站| 欧美电影在线观看| 亚洲国产91精品在线观看| 一区在线视频| 老鸭窝毛片一区二区三区 | 午夜精品久久久久久久| 亚洲在线视频网站| 欧美吻胸吃奶大尺度电影| 亚洲精品一区二区三区樱花| 亚洲人成网站色ww在线| 免费国产一区二区| 亚洲国产综合在线看不卡| 亚洲免费观看视频| 欧美片网站免费| 中文日韩欧美| 久久久999成人| 亚洲国产视频a| 欧美电影免费观看网站| 99在线|亚洲一区二区| 欧美一区二区三区视频| 红桃视频成人| 美女精品在线观看| 亚洲激情小视频| 亚洲一区二区三区中文字幕在线| 欧美日韩一区高清| 午夜精品视频| 欧美激情精品久久久久| 亚洲精品一区二| 欧美日韩免费一区二区三区视频| 亚洲小说区图片区| 久久久久在线观看| 亚洲欧洲免费视频| 欧美午夜不卡在线观看免费 | 美日韩在线观看| 99国产精品国产精品久久| 国产乱码精品一区二区三| 久久精品亚洲国产奇米99| 亚洲国产精品一区二区第四页av| 欧美一区免费视频| 久久久91精品国产| 午夜精品视频在线| 久久久久网址| 一本色道久久88综合日韩精品| 国产精品一级| 免费精品视频| 亚洲综合99| 亚洲三级毛片| 久久免费高清| 亚洲伊人色欲综合网| 一区二区三区在线看| 欧美午夜电影完整版| 久久久久一本一区二区青青蜜月| 亚洲精品视频啊美女在线直播| 午夜视频一区| 最新日韩在线| 国产综合视频在线观看| 欧美日韩一区二区高清| 久久aⅴ国产紧身牛仔裤| 亚洲巨乳在线| 欧美福利在线观看| 久久激情视频免费观看| 中文精品99久久国产香蕉| 黄色日韩网站| 国产精品日韩一区二区| 欧美成人自拍| 久久精品视频亚洲| 亚洲色图在线视频| 亚洲黄色免费网站| 裸体女人亚洲精品一区| 性8sex亚洲区入口| 一区二区三区久久精品| 亚洲国产精品悠悠久久琪琪| 国产亚洲一区在线| 国产精品久久久久99| 欧美成人精品一区二区三区| 久久久久久久久久久一区| 亚洲一区精彩视频| 亚洲精品久久久久| 亚洲福利av| 裸体一区二区| 久久亚洲精品中文字幕冲田杏梨 | 亚洲国产精品一区二区第四页av| 免费日韩视频| 老司机精品视频一区二区三区| 午夜一区二区三区在线观看 | 久久成人免费视频| 亚洲欧美另类国产| 亚洲一区二区视频在线观看| 亚洲精选国产| 一区二区三区视频观看| 一本色道久久加勒比精品| 最新日韩中文字幕| 亚洲精品女av网站| 欧美激情精品久久久久久蜜臀| 欧美成人综合一区| 亚洲春色另类小说| 亚洲国产精品一区二区www在线| 欧美韩日一区| 亚洲激情二区| 一区二区三区高清在线观看| 在线一区二区三区做爰视频网站| 亚洲午夜av在线| 欧美在线日韩在线| 老**午夜毛片一区二区三区| 欧美风情在线观看| 久色成人在线| 快播亚洲色图| 亚洲欧洲一区二区天堂久久 | 国产综合网站| 亚洲全黄一级网站| 亚洲一区二区黄| 亚洲欧美日韩在线播放| 欧美成年人在线观看| 欧美日韩第一区日日骚| 国产精品久久久一本精品| 国产亚洲欧美日韩美女|