| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5182 人关注过本帖
标题:怎么区别8086cpu中那些是指令,那些是伪指令。
只看楼主 加入收藏
anonymous_01
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-10-17
结帖率:0
收藏
已结贴  问题点数:5 回复次数:3 
怎么区别8086cpu中那些是指令,那些是伪指令。

不是说dw是伪指令吗?为什么不通过编译器能执行,并且我在debug模式中也没有使用t来执行语句,但该语句就被执行了。

[此贴子已经被作者于2021-2-27 10:56编辑过]

搜索更多相关主题的帖子: 执行 语句 指令 区别 伪指令 
2021-02-27 10:54
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:340
专家分:2482
注 册:2016-5-15
收藏
得分:5 
db,dw,dd,dq,dt等都是编译器(如masm)的定义内存长度的伪指令,dw是定义字word,
dw xx,yy,zz..... ;xx,yy,zz等代表一个word,其含义可以是指令,立即值,地址等等任何cpu解释的意义
通常dw指向一个值,再由指令去读取,如
table dw 1000h,2000h,3000h
..
..
mov bx,offset table    ;取址
mov ax,[bx]         ;取址中值,ax=1000h
mov ax,[bx+2]         ;取址中值,ax=2000h

但,dw也可以直接在程式段使用,如

mov bx,1000h
dw 0d889h
dw 9090h

编译器会将后2条的dw值放置在该地址,cpu会直接执行(当然必须有意义的指令)
mov bx,1000h
mov ax,bx    ;89h,0d8h 是 mov ax,bx的机器码
nop        ;90h 是 nop的机器码
nop

所以dw本身尽管不是指令,但可以定义出机器码,
但若是cpu无法解释的东西,后果无法预期.
2021-02-28 06:27
asd191155707
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-4-17
收藏
得分:0 
8888888888888888
2021-04-17 12:31
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
收藏
得分:0 
null

[此贴子已经被作者于2021-11-4 18:16编辑过]

2021-08-09 19:47
快速回复:怎么区别8086cpu中那些是指令,那些是伪指令。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015259 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved