鱼C论坛

 找回密码
 立即注册
查看: 2051|回复: 7

附注 4 的方法不会用

[复制链接]
发表于 2014-4-14 18:21:50 | 显示全部楼层 |阅读模式
3鱼币
  第十章 11小节提到了 用栈传递参数  我看了附注4以后,就试着用栈传递 11小节那个程序,还是不会  
    那位大哥给我说一下 这个怎么弄啊   最好能给俩例子 我研究一下  谢谢了
    还有,这种方法是不是需要掌握啊!!
     这是11小节的程序:
  assume cs:code
data segment
db 'conversation'   ;把这个字符串改成大写
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,12
call s
mov ax,4c00h
int 21h
s:
and byte ptr [si],11011111b
inc si
loop s
ret
code ends
end start

最佳答案

查看完整内容

传递参数的方法有3种,寄存器、全局变量、堆栈 用堆栈传递参数就是调用函数之前先把函数的参数压栈即push。然后用相对寻址即ebp来取参数的值。估计你看的那个教程没有详细介绍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-14 18:21:51 | 显示全部楼层
本帖最后由 oggplay 于 2014-4-14 23:11 编辑

传递参数的方法有3种,寄存器、全局变量、堆栈
用堆栈传递参数就是调用函数之前先把函数的参数压栈即push。然后用相对寻址即ebp来取参数的值。估计你看的那个教程没有详细介绍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-14 23:47:00 | 显示全部楼层
这个例子是讲call和ret的例子吧,,
先看书上call和ret的用法。
然后单步调试跟踪call和ret这两个指令执行时ip的变化。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-15 08:28:40 | 显示全部楼层
这个是讲Call命令自动将call 下一行命令的IP入栈保存,执行到ret 的时候自动将IP出栈这时CS:IP指向Call下一条指令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-15 12:18:11 | 显示全部楼层

我看得是王爽的 《汇编语言》 里面没有提到全局变量,看了小甲鱼的视频 也没有提到全局变量和堆栈,哪里有详细介绍的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-15 13:45:36 | 显示全部楼层
本帖最后由 oggplay 于 2014-4-15 13:49 编辑

http://pan.baidu.com/s/1o6v0v02  密码4e76 也可能是4c76

随便找本32位的汇编书籍都有介绍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-4-15 13:55:52 | 显示全部楼层
oggplay 发表于 2014-4-15 13:45
http://pan.baidu.com/s/1o6v0v02  密码4e76 也可能是4c76

随便找本32位的汇编书籍都有介绍

进不去 不过还是谢谢你了,我现在学得还是8086汇编   可能以后学到32位 会学的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-15 16:39:24 | 显示全部楼层
沉ジ寞 发表于 2014-4-15 13:55
进不去 不过还是谢谢你了,我现在学得还是8086汇编   可能以后学到32位 会学的

。。。。密码 8c76
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 14:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表