📄 subject_52794.htm
字号:
<p>
序号:52794 发表者:Cuiyi 发表日期:2003-09-14 18:59:56
<br>主题:关于汇编代码的疑问!急!!!!!!
<br>内容:我在一本介绍汇编的书上看到了在CODE段里有以下的一小段代码:<BR>MOV EAX, 00000001H<BR>MOV CR0, EAX<BR>JMP EDS_FLUSH<BR>.<BR>.<BR>.<BR>EDS_FLUSH:<BR> DB 0EAH<BR> DW OFFSET MOVE_BUF(这是一个已定义的变量)<BR><BR>请问在EDS_FLUSH下面的这两条指令是什么意思啊!!多谢!!!<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:老桐树 回复日期:2003-09-17 09:00:03
<br>内容:DB 0EAH 一字节为单位定义变量!<BR>DW OFFSET MOVE_BUF 定义OFFSET 变量并把MOVE_BUF的内容 以字为单位付给他!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Konca 回复日期:2003-09-19 15:35:40
<br>内容:DB 定义一个字节,因为此处是代码段,所以这个"EA"变成汇编指令"JMP"<BR>DW 定义一个字(不知道在VC里到底是多少,估计是32位的),这里代码一个地址。<BR><BR>所以两者合起来解释为:JMP MOVE_BUF<BR>是一条跳转指令
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Cuiyi 回复日期:2003-09-20 17:48:11
<br>内容:请问konca,那里可以找到机器指令的编码啊,谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Konca 回复日期:2003-09-22 09:07:43
<br>内容:<BLOCKQUOTE>引用“第3楼”所言<BR><Q>请问konca,那里可以找到机器指令的编码啊,谢!</Q></BLOCKQUOTE><BR>我见过有本汇编的教材里介绍指令时会有说明的,例如<BR> CD就是INT,<BR> B8就是MOV AX<BR><BR>你可以用DEBUG来查看一下.<BR>例如:<BR>c:>debug<BR>-a<BR>mov ax,201<BR>mov bx,200<BR>mov cx,1<BR>mov dx,80<BR>int 13<BR>int 20<BR><BR>u100<BR>然后你可以看到:<BR>-u100<BR>0B35:0100 B80102 MOV AX,0201<BR>0B35:0103 BB0002 MOV BX,0200<BR>0B35:0106 B90100 MOV CX,0001<BR>0B35:0109 BA8000 MOV DX,0080<BR>0B35:010C CD13 INT 13<BR>0B35:010E CD20 INT 20<BR>其中<BR>CD13就是INT 13的机械码了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Cuiyi 回复日期:2003-09-24 06:27:34
<br>内容:真是帮了大忙了,再次表示感谢!!!<BR>我还想问一下konca,为什么<BR>JMP EDS_FLUSH<BR>.<BR>.<BR>.<BR>EDS_FLUSH:<BR>DB 0EAH<BR>DW OFFSET MOVE_BUF<BR>这样的指令有清除cpu指令队列的功能啊?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Konca 回复日期:2003-09-25 15:46:57
<br>内容:不明白你说的“CPU指令队列”是什么意思哦。<BR> <BR>我想说明两点:<BR>第一:在代码区,用DB的形式填入汇代码中的,被编译后亦可能为执行代码。<BR>第二:CPU将要执行的指令的地址是由CS:IP来指定的,<BR> 其中,CS能用PUSH/POP或间接MOV来改变,而JMP等指令均能改变IP值。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Cuiyi 回复日期:2003-09-25 16:39:13
<br>内容:我的意思是说当我进入386保护模式下编程时,由实模式转到保护模式要清cpu的欲取出指令队列,方法就是上面的代码,可我不明白为什么?在此我先到谢了!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -