. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测2.3  [待解决] 回复[ 4次 ]   点击[ 864次 ]  
boon
[帖 主]   [ 发表时间:2014-01-22 14:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-01-21 22:13
jmp读入和读出为什么更改了两次IP?
读入后更改了一次,怎么读出还更改呢?
还有就是IP不应该为ax+ax吗,怎么是0呢?
wuzhihuiqqyy
[第1楼]   [ 回复时间:2014-01-22 14:44 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-01-21 23:29
是不是执行jmp的时候从ax读入指令,这时候ip+,之后把ax给ip,2次,不知道是不是这样
dyg104
[第2楼]   [ 回复时间:2014-09-30 15:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-08-02 20:20
指令jmp执行后要改变一次ip的值,在之前原来ip的值加上本次指令的长度再改变一次。举个例子:
13d1:0100 mov ax,1
13d1:0103 jmp 13d1:0001 ;此处ip第一次改变为0106,第二次改变为0001
13d1:0106 mov bx,3
1461299415
[第3楼]   [ 回复时间:2014-11-13 12:01 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-11-08 19:06
读入的时候是JMP指令送入指令缓冲器后IP的值加上JMP指令的长度作为新的IP的值,当读出的时候是执行JMP指令后(JMP指令是改变IP指向的)IP重新变更作为指向下一条指令。
qsls
[第4楼]   [ 回复时间:2017-03-17 16:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2017-03-10 21:16
3楼正解,每次CPU将读取的指令放到指令缓冲区后,IP指向下一条指令,此时IP值变化一次,之后执行指令JMP,IP值再次变化,最终IP=ax
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved