社区
汇编语言
帖子详情
请教各位,关于push imm16的问题。
bingking68
2008-02-20 12:04:12
如标题所讲,我希望通过堆栈,用push imm16实现将A000代入ES里。
代码如下:
PUSH A000H
POP ES
但是,DEBUG显示:error A2006: undefined symbol : A000
请问,我这样写是否有问题,该如何写呢?
开发平台:RadASM -> MASM..
...全文
224
9
打赏
收藏
请教各位,关于push imm16的问题。
如标题所讲,我希望通过堆栈,用push imm16实现将A000代入ES里。 代码如下: PUSH A000H POP ES 但是,DEBUG显示:error A2006: undefined symbol : A000 请问,我这样写是否有问题,该如何写呢? 开发平台:RadASM -> MASM..
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bingking68
2008-03-04
打赏
举报
回复
非常感谢各位的帮助,特别是cnzdgs,回了5个帖..
1.本来,我可以好像BAYNPU所说的:
mov ax,a000h
push ax
pop es
但是,觉得多了一句“mov ax,a000h”,对于代码来说,不够优化。
2.另外,像zara所说在,可以在开头加上.586。
这样写也可以解决这个问题。
但是这样只能在简化段运用,若在完整段里,可以这样写吗?
3.还有,如cnzdgs所说的,
把 PUSH 0A000H
改为 DB 068H
DW 0A000H
这里,我有个想法,如果不改为OP码,不知道还是否会有些更优化的写法。。
在此,我们一起交流一下啊!
感谢不尽!
BAYNPU
2008-02-20
打赏
举报
回复
no
mov ax,a000
push ax
pop es
cnzdgs
2008-02-20
打赏
举报
回复
原来是这问题,加.386就可以了。
zara
2008-02-20
打赏
举报
回复
是 dos16 类程序吧? 要使用 push 立即数 这样的指令, 需要在程序的开头加上:
.model small ; 或者是 tiny 等其它自己程序适意的模式
.586
cnzdgs
2008-02-20
打赏
举报
回复
error A2001: immediate operand not allowed。
这问题与编译器有关,如果上面这两种方法也不行,你就直接写目标码。
DB 68H
DW 0A000H
cnzdgs
2008-02-20
打赏
举报
回复
push word ptr 0a000h
cnzdgs
2008-02-20
打赏
举报
回复
push word 0a000h
bingking68
2008-02-20
打赏
举报
回复
cnzdgs
如果我把A000H改为0A000H,调试器会显示error A2001: immediate operand not allowed。
这样还是不行啊!
cnzdgs
2008-02-20
打赏
举报
回复
常数不能以字母开头,A000H改为0A000H。
POP和
PUSH
指令
PUSH
指令: 首先减少 ESP 的值,再将源操作数复制到堆栈。操作数是 16 位的,则 ESP 减 2,操作数是 32 位的,则 ESP 减 4。
PUSH
指令有 3 种格式:
PUSH
reg/mem16
PUSH
reg/mem32
PUSH
inm32 POP指令: 首先把 ESP 指向的堆栈元素内容复制到一个 16 位或 32 位目的操作数中,再增加 ESP 的值。如果操作数是 16 ...
汇编
push
,pop
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-24,00:40:12作者By-----溺心与沉浮----博客园 1、BASE,TOP是2个32位的通用寄存器,里面存储的是内存单元编号(内存地址). 2、BASE里面存储了一个地址,记录的起始地址. 3、TOP里面也存储了一个地址,记录的是结束的地址. 4、存入数据的时候,TOP的值减4(为方便演...
微型计算机原理
push
指令,微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、
PUSH
、POP、
PUSH
F、POPF)...
传送类指令1.通用传送类指令:MOV指令MOV例题讲解:2.取有效指令LEA指令:LEA例题讲解:3.取地址指针指令:LDS、LESLDS例题讲解:LES例题讲解:4.标志传送指令:LAHF、SAHF5.数据交换指令:XCHG6.字节转换指令:XLAT7.堆栈操作指令:
PUSH
、POP、
PUSH
F、POPF栈操作例题讲解:功能:把数据、地址、或立即数传送到寄存器或存储单元中 。1.通用传送类指令:...
微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、
PUSH
、POP、
PUSH
F、POPF)
传送类指令1.通用传送类指令:MOV指令MOV例题讲解:2.取有效指令LEA指令:LEA例题讲解:3.取地址指针指令:LDS、LESLDS例题讲解:LES例题讲解:4.标志传送指令:LAHF、SAHF5.数据交换指令:XCHG6.字节转换指令:XLAT7.堆栈操作指令:
PUSH
、POP、
PUSH
F、POPF栈操作例题讲解: 功能:把数据、地址、或立即数传送到寄存器或存储单元中 。 1.通用传送类......
16asm -指令
介绍了数据传送指令,算术运算指令,符号拓展指令,位运算指令。
汇编语言
21,500
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章