1樓:畫扇悲風傷月夜
呵呵 雖然我也學過彙編 但老師這部分貌似沒講 好像和指令編碼有關我不大懂 幫你找了答案在網上樓主自強吧3條指令執行後,cup四次修改ip。第1次在執行 mov ax,bx後,第2次在執行sub ax,ax後,第3次在讀入jmp ax後,第4次在執行jmp ax後。最後ip中的值是0。
分析:指令mov ax,bx執行前初始ip值不變,執行後cpu第一次修改ip,讀入的指令是89 d8(mov ax,bx),長度為2byte,執行後ip=初始ip+2。繼續執行指令sub ax,ax後,cpu第二次修改ip,讀入的指令是29 c0(sub ax,ax),長度為2byte,此時ax=0,執行後ip=初始ip+2+2。
繼續讀入指令jmp ax後,cpu第三次修改ip,讀入的指令是ff e0(jmp ax),長度為2byte,讀入後ip=初始ip+2+2+2。當執行完指令jmp ax後 變為0
2樓:匿名使用者
你給的題目不全。
mov ax,0001執行指令:ax = 0001 cup讀取指令後ip改1次
mov bx,ax 執行指令:bx = ax = 0001 cup讀取指令後ip改1次
sub ax,bx 執行指令:ax = ax + bx = 0002 cup讀取指令後ip改1次
jmp 0421,004f 這裡寫的不對應該是jmp 0421:004f 執行指令cs:ip=0421:
004f,讀取記憶體地址跳到04210+004f=425f的位置上。 cup讀取指令後ip改1次 , 執行jmp修改ip 1次
但是你沒有提供記憶體地址。我不知道它接下來該跳到哪個指令執行。
到上面結束,是總共改了5次ip,ip值為004f
下面的三條指令執行後,cpu幾次修改ip?在什麼時候,最後ip值為多少?mov ax bx sub ax,ax jmp ax
3樓:匿名使用者
呵呵 雖然我也學過彙編 但老師這部分貌似沒講 好像和指令編碼有關我不大懂 幫你找了答案在網上樓主自強吧3條指令執行後,cup四次修改ip。第1次在執行 mov ax,bx後,第2次在執行sub ax,ax後,第3次在讀入jmp ax後,第4次在執行jmp ax後。最後ip中的值是0。
分析:指令mov ax,bx執行前初始ip值不變,執行後cpu第一次修改ip,讀入的指令是89 d8(mov ax,bx),長度為2byte,執行後ip=初始ip+2。繼續執行指令sub ax,ax後,cpu第二次修改ip,讀入的指令是29 c0(sub ax,ax),長度為2byte,此時ax=0,執行後ip=初始ip+2+2。
繼續讀入指令jmp ax後,cpu第三次修改ip,讀入的指令是ff e0(jmp ax),長度為2byte,讀入後ip=初始ip+2+2+2。當執行完指令jmp ax後 變為0
哪個好心人能告訴我這個怎麼做?詳細點啊》先謝謝了 下面的三條指令執行後,cpu幾次修改ip?都是在什麼時
4樓:匿名使用者
要知道ip是指令暫存器,也就是cpu要執行的指令的地址,最後ip的值當然是jmp ax要跳到的地址了。因為sub ax,ax後ax=0所以jmp ax就是jmp 0000的意思,即ip最後值為0000h,cpu每執行指令一次改變ip值所以修改三次
下面的3條指令執行後,cpu幾次修改ip? 10
5樓:匿名使用者
一共修改了4次。
第1次:從儲存器中讀取mov ax, bx指令之後,ip立即改變,指向下一條指令(sub ax, ax)的地址。
第2次:從儲存器讀取sub ax, ax之後(在此之前,會先執行mov ax, bx指令),ip立即改變,指向下一條指令(jmp ax)的地址。
第3次:從儲存器讀取jmp ax指令之後(在此之前,會先執行完sub ax, ax指令),ip立即改變,指向下一條指令的地址,這裡由於下一條指令沒有標明,所以不知道,反正此時ip的值是緊挨jmp ax之後的地址。
第4次:執行jmp ax指令後。jmp指令是通過修改ip的值來達到使程式執行跳轉的目的的,因此執行jmp之後,ip的值變為ax(此時值為0)的值,所以修改為了0。
如果程式繼續執行,那麼ip的值是儲存器中0位置指令的下一條指令的地址。
(上面的解釋是在沒有考慮指令預取、多條流水等情況下成立的!)
6樓:luke毛利
3條指令執行後,cup四次修改ip。第1次在執行 mov ax,bx後,第2次在執行sub ax,ax後,第3次在讀入jmp ax後,第4次在執行jmp ax後。最後ip中的值是0。
分析:指令mov ax,bx執行前初始ip值不變,執行後cpu第一次修改ip,讀入的指令是89 d8(mov ax,bx),長度為2byte,執行後ip=初始ip+2。繼續執行指令sub ax,ax後,cpu第二次修改ip,讀入的指令是29 c0(sub ax,ax),長度為2byte,此時ax=0,執行後ip=初始ip+2+2。
繼續讀入指令jmp ax後,cpu第三次修改ip,讀入的指令是ff e0(jmp ax),長度為2byte,讀入後ip=初始ip+2+2+2。當執行完指令jmp ax後 變為0。
為什麼執行完指令jmp ax後ip搖變為0?
看網上說 jmp這個指令要修改2次ip,我是這樣理解的 第一次先把ip入棧 因為跳轉指令麼 所以還要跳回來 用堆疊保護現場,第二次 ip會變成ax的資料 用於跳轉 ax在sub那句不就等於0了麼 所以就是0。
7樓:匿名使用者
指令是要轉化成機器碼執行的 所以對應位元組來說 ip肯定是被每條指令修改過 至於為什麼有三條執行** ip被修改了 四次 不要忘記一個程式結束後 程式都要進行返回或者初始化狀態 所以就是4次修改ip 就跟一根繩子一樣 你一刀砍下去變成了幾根? 2刀下去變成幾根? 推理一下就知道了 我們學習的不是變成的結構 而是一種程式設計的思維 也就是物理的邏輯思維 我以前也 很不懂為什麼一堆**資料可以呈現出這麼多功能來
8樓:匿名使用者
參考圖2.7(組合語言,王爽,第3版)
每條指令相當於一個**塊對應的彙編指令,cpu每次讀取一條指令,ip+所讀指令的長度;
jmp ax 是執行時更改ip的值。
每次讀取指令更改一次,共更改三次;執行jmp指令更改一次
9樓:匿名使用者
3次,每執行完一個命令改一次ip,還有,以後去組合語言區問這個問題。
彙編小問題,摘自王爽《組合語言第二版》題目如是:這三條指令執行完後,cpu幾次修改ip?都是在什麼時候?
10樓:
1.指向mov ax,bx 後一個語句 sub ax,ax2.指向sub ax,ax 後一個語句 jmp ax3.
指向jmp ax 後一個語句(未知)4.jmp ax 時修改ip, 把它改為ax的值,就是0
組合語言,偏移地址ip移動次數與當前數值問題
11樓:做而論道
就是為什麼最後ip等於0000h他跟ax的關係是什麼?
sub ax, ax----ax=0000h
jmp ax----就是用 ax 的內容,當做目標地址。
下面的程式執行後,a的值為多少,執行下面程式中的輸出語句後,a的值是20,為什麼
第一次b 1,b 3 1成立 b 3以後b 3 1還是成立的,直到b 20才退出迴圈。比20大的最小模3為1的數字是22,這樣總共要迴圈7次,也就a 了7次,所以a 8 因為第一次時b 1,b 3 1,所以會b 3,然後continue所以每次b 3 1都為true,也就是 a 1 b 1 a 2 ...
執行軟體2分鐘後CPU佔用率,執行軟體2分鐘後CPU佔用率
大哥你就不能打遊戲的時候把別的都給關了。另外你的記憶體是多少的,如果打使命召喚7這種高檔貨遊戲需求是很高的哦。神舟優雅你玩使命召喚7,我都佩服你呀,優雅系列的我沒記錯的話,顯示卡還是整合的,只不過有外接的顯示器埠而已,1,你的機子帶win7本來就用問題,難呀,你在看電影沒有獨顯的機子,顯示卡這部分的...
電腦執行大型遊戲後,CPU溫度有76度,正常嗎
cpu溫度過高所造成所以 自動採用了 降頻 保護自己 cpu 摸一下散熱器 如果溫度正常 會不會是cpu風扇給燒壞了 我們可以看一下計算機的自檢過程 如果沒有什麼異常 我們可以基本排除了 硬體出問題 那麼會不會是bios程式中的設定引數出了什麼問題呢?我們進入bios看看 bios features...