匯編指令


1.debug的常用命令

  1.r命令

    查看、修改CPU中寄存器的值

    -r :查看寄存器的值

    -r  cs :修改寄存器cs的值

  2.D命令

    查看內存中的內容

    1.-d  段地址:偏移地址

    -d 1000:01     查看內存100001處的內容

    -d 段地址:偏移地址 結尾偏移地址

    -d 1000:0 9     查看100000 - 100009

  3.E命令

    改寫內存中的內容

    1.-e 1000:10 0 1 2 3     從1000010開始向內存中寫入0123數據, 如果寫入內存的數據是字符其實實際上存入內存中的是其對應的ascll碼

  4.U命令

    查看機器碼對應的匯編指令

    -u 1000:0   查看1000:0 處的機器碼對應的匯編指令

  5.T命令

    執行當前的指令  

    執行cs:ip 在指向的內存單元中的指令,並且使cs:ip指向下一條指令

  6.A命令

    以匯編指令的形式在內存中寫入機器指令

    -a 1000:0

    1000:0000 mov ax,1

    1000:0003 mov bx,2

    1000:0006 add ax,bx

 

2.將機器碼為b8 20 4e, 對應的匯編指令為mov ax,4E20H的指令,使用匯編指令寫入內存並且執行

第一種方法:  使用e指令向內存中寫入指令(從coding的角度來說,寫入的是機器語言,也就是機器碼)

1.使用e指令,修改內存單元中的內容,改為指令的機器碼

2.機器碼寫入成功

3.修改cs和ip,使其指向的內存單元是我們剛寫入指令的內存單元

4.重新指向cs和ip成功

5.使用t指令執行,內存單元中的指令,觀察ax的值,發現已經執行成功

第二種方法: 使用a指令向內存中寫入指令(從coding的角度來講, 寫入的是匯編語言)

1.使用a指令,向內存單元中直接寫入指令,然后debug將匯編語言轉換為機器語言寫入到內存中(這樣就是方便我們修改指令,不用存入機器碼)

2.使用-t執行指令,也是執行成功

 3.棧操作

  1.push 寄存器              //入棧

  2.pop  寄存器              //出棧

4.dosbox下使用debug程序

 


免責聲明!

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



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