總結一下匯編中mov,lea指令的區別


      最近在學習匯編語言,過程中遇到很多問題,對此在以后的隨筆會逐漸更新,這次談談mov,lea指令的區別

      一,關於有沒有加上[]的問題

           1,對於mov指令來說:

                     有沒有[]對於變量是無所謂的,其結果都是取值

                          如: num dw 2

                                mov bx,num

                                mov cx,[num];bx=cx=2

                      對於寄存器而言,有[]表示取地址,沒[]表示取值

                           如: num dw 2

                                mov ax,num

                                mov bx,ax;bx=2 

                                mov bx,[ax];mov bx;DS:[ax],這里可能存在報錯的情況,總之大體意思能理解就行

              2,對於lea指令來說:

                      有沒有[]對於變量是無所謂的,其結果都是取變量的地址,相當於指針(與mov相反)

                            如:num dw 2

                                  lea  ebx,num;

                                  lea  eax,[num];ebx=eax

                       對於寄存器而言,有[]表示取值,沒[]表示取地址

                             如:mov eax,2

                                   mov ebx,[eax];ebx=2

                                   mov ebx,eax;eax=地址,隨程序的不同而不同


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM