注册 登录
编程论坛 汇编论坛

【求助】如果想把AL的值送给SP指向的存储单元应该用什么指令?

fish7fish7 发布于 2008-11-09 15:36, 2780 次点击
如题,谢谢!
17 回复
#2
fish7fish72008-11-09 15:41
非常着急求解,谢谢!
#3
zklhp2008-11-09 16:02
mov di,sp
stosb

[[it] 本帖最后由 zklhp 于 2008-11-10 12:47 编辑 [/it]]
#4
ONEPROBLEM2008-11-09 16:05
;不要mov ah,0
mov al,X  ;给AL赋值X
mov bp,sp
mov [bp],al  ;改ax为al

[[it] 本帖最后由 ONEPROBLEM 于 2008-11-9 16:12 编辑 [/it]]
#5
ONEPROBLEM2008-11-09 16:08
[bo][un]ONEPROBLEM[/un] 在 2008-11-9 16:05 的发言:[/bo]

mov ah,0
mov al,X  ;AL中的值X
mov bp,sp
mov ,ax

mov ah,0 ;这句多余了.
#6
zklhp2008-11-09 16:14
[bo][un]ONEPROBLEM[/un] 在 2008-11-9 16:08 的发言:[/bo]


mov ah,0 ;这句多余了.


清零最好用xor sub

要是清eax 也 mov eax,00000000h 这不找挨骂吗? 好像要5字节呀
#7
ONEPROBLEM2008-11-09 16:36
[bo][un]zklhp[/un] 在 2008-11-9 16:14 的发言:[/bo]



清零最好用xor sub

要是清eax 也 mov eax,00000000h 这不找挨骂吗? 好像要5字节呀

呵呵~~习惯了.今后会注意的~~
#8
ONEPROBLEM2008-11-09 16:38
[bo][un]zklhp[/un] 在 2008-11-9 15:58 的发言:[/bo]

这样?

mov byte ptr [sp],al

sp 是不能用来作为寄存器寻址的吧?

也没有pop ah  push al 这样的指令,因为在16位汇编中,对栈最小是"字"操作.

[[it] 本帖最后由 ONEPROBLEM 于 2008-11-9 16:41 编辑 [/it]]
#9
fish7fish72008-11-09 17:42
上面说一大堆,还是不会啊!编译出错:must be index or base register
#10
zklhp2008-11-09 19:28
[bo][un]fish7fish7[/un] 在 2008-11-9 17:42 的发言:[/bo]

上面说一大堆,还是不会啊!编译出错:must be index or base register


引用句aogo站上的的话:无代码 无真相
#11
ONEPROBLEM2008-11-09 22:43
同意LS.
建议贴出代码~~
#12
cnhanxiao2008-11-10 06:59
最简单的:
xchg al,ah
push ax
inc sp

四字节就把AL压栈了。

[[it] 本帖最后由 cnhanxiao 于 2008-11-10 07:11 编辑 [/it]]
#13
ONEPROBLEM2008-11-10 09:34
[bo][un]cnhanxiao[/un] 在 2008-11-10 06:59 的发言:[/bo]

最简单的:
xchg al,ah
push ax
inc sp

四字节就把AL压栈了。

强!
我这:mov bp,sp
     mov [bp],al
两条指令比你还多了一个字节!
;========================
但我有点不解:
题目说:想把AL的值送给SP指向的存储单元
是不是指SP的当前指向地址?
如果是的话,AL压栈没压对地方~~
#14
zklhp2008-11-10 12:45
偶一开始写的那个不对

mov byte ptr [sp],al 没这种寻址方式……
#15
zklhp2008-11-10 12:49
[bo][un]zklhp[/un] 在 2008-11-9 16:02 的发言:[/bo]

mov di,sp
stosb


刚试了一下 pop ah也不对……

不试真是不行啊

这个对不对呀?
#16
cnhanxiao2008-11-11 09:01
回复 15# 的帖子
正确。但是之前需要保证ES=SS

push ss
pop es
...
mov di,sp
stosb
dec sp
...
#17
cnhanxiao2008-11-11 09:04
回复 13# 的帖子
我是按照他想压栈AL考虑的,所以调整堆栈指针,反正后续堆栈操作不会破坏掉这个数据了,呵呵
#18
zklhp2008-11-11 12:31
[bo][un]cnhanxiao[/un] 在 2008-11-11 09:04 的发言:[/bo]

我是按照他想压栈AL考虑的,所以调整堆栈指针,反正后续堆栈操作不会破坏掉这个数据了,呵呵


偶开始写的两个都错了 又误人子弟了

还是您写的那个最省 偶这个得5字节才能保证正确
1