汇编语言 PUSH 用法疑问

PUSH FFFFH 编译器不能通过,PUSH 1111H可以通过,PUSH不是将16位源操作数压入堆栈么

第1个回答  推荐于2017-10-12
如果,16进制的数是一A - F之间的字母开头的话,必须在前面加上0
即push 0FFFFh,

push不一定是将16位源操作数压入栈,

32位的程序,就是压入32位的数值本回答被提问者和网友采纳
第2个回答  2014-04-15
编译器是不能直接以字母开头的十六进制的数的,如果你在编译器赋值的时候加个0,如0FFFF这样的,应该就可以进行了

汇编语言中的PUSH的用法?
PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定的操作数送入新的栈顶位置。用法示例:push ax ;将AX寄存器的值压入栈顶push 1 ;将数值1压入栈顶 本回答被网友采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 1条折叠回答 其他类似...

汇编语言 PUSH 用法疑问
即push 0FFFFh,push不一定是将16位源操作数压入栈,32位的程序,就是压入32位的数值

汇编语言中的PUSH的用法
(SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置。此处的((SP))<--OPRD,也可以理解为:[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD 示例:PUSH DX PUSH BP PUSH CS PUSH DATA1 PUSH ALFA[BX][SI]注意:每进...

关于汇编语言中的PUSH问题。
PUSH CX在堆栈保存CX,循环利用CX,结合LOOP COMP实现整个字符系列遍历检测(所谓的内循环)取出CX赋予DX,--DX,检测是否为零,即是否还有字符需要检测 【事实上push,pop这些操作你只需当它是参数传递与保存即可】事实上 第二行与第三行push cx,pop dx完全没意义,可以去掉 事实上,在NEXT1子指令...

汇编(关于PUSH的SP问题)
PUSH入栈操作,遵守FILO原则(first in last out),而且必须是字操作,MOV AX,N1 PUSH AX 这是第一次进行压栈,SP=SP-2,存储器是8位的,而AX是16位的,高八位即AH存在高地址,而低八位AL存在低地址,SS=3000H,SP-2=00FEH 物理地址=SS*10H+SP=300FEH MOV AX,N2 PUSH AX 同理SP=SP-...

汇编语言关于PUSH的问题
sp指针指向0100 但是【栈底】为2000:00FF,所以push后sp指向00FE 即物理地址为2000:00FE

汇编语言里面关于 push mov lea的一点小问题。
push 的后面,应该写16位的操作数,可以是寄存器名称,如:push AX push BX ……--- mov eax,[xxx],是把逗号右边,当做源,左边当做目的。80x86 的汇编,都是这样的。其它的汇编语言,也有用左边的当做源。

汇编语言问题
PUSH #54H ;push #53H,是将立即值53H放入堆栈..这是编译不通过的,同意楼上,但是题是这样出也没有办法,只能顺着做 PUSH指令是执行一次后SP自加1的,这是解题重点,PUSH #53H即将#53H存为40H地址SP加1 同理PUSH #54H即将#54H存为41H,那么这时41H里的数就是#54H了,SP再自加1...

关于汇编语言push DI的问题
1、源操作数DI是寄存器寻址方式,目的操作数是隐藏的,其地址由当前的SS:SP确定,是寄存器间接寻址;PUSH DI实际上是把DI中的内容拷贝到内存中SS:SP指向的内存单元中,假如SS=FFFF,SP=0那么DI中的数据要写到地址为FFFF0H的内存单元中 2、[1234H]指出目的操作数在内存中的偏移地址为1234H,段地址...

push是什么指令
push指令就是汇编语言指令 栈。

相似回答