首页
社区
课程
招聘
[旧帖] [求助]call指令没有对返回地址进行压栈。 0.00雪花
2008-12-4 13:16 3436

[旧帖] [求助]call指令没有对返回地址进行压栈。 0.00雪花

2008-12-4 13:16
3436
Title 4002 proc
.model small
.386
.stack 100h
.data
hnumber dw 0fdeah
bnumber dw 10001110010101b
hascii1 db 4 dup(0),0dh,0ah,'$'
hascii2 db 4 dup(0),0dh,0ah,'$'
oascii1 db 5 dup(0),0dh,0ah,'$'
oascii2 db 5 dup(0),0dh,0ah,'$'
.code
begin:
main proc
mov ax,@data
mov ds,ax
mov ax,hnumber
push ax
mov ax,offset hascii1
push ax
call HTOASCS
mov dx,offset hascii1
mov ah,09h
int 21h
mov ah,4ch
int 21h
main endp

HTOASCS proc
push bp
mov bp,sp
push bx
push cx
push dx
mov cx,4
mov dx,[bp+4]
mov di,[bp+2]
next:
rol dx,4
push dx
call HTOASC
mov [di],bl
pop dx
inc di
dec cx
jnz next
pop dx
pop cx
pop bx
pop bp
ret
HTOASCS endp

HTOASC proc
push bp
mov bp,sp
mov bx,[bp+2]
;mov al,bl
and bl,0fh
add bl,30h
cmp bl,39h
jbe rets
add bl,07h
rets:
pop bp
ret
HTOASC endp

END begin
这是我编的一个程序,为了验证用堆栈进行参数传递,可是无法正确运行,用debug进行跟踪发现call指令竟然没有将返回地址进行压栈。我是用masm编译的,5.0和6.15都试过了,还是不能正确运行而且原因都一样。希望大侠们给个指导。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
axe 2008-12-4 16:08
2
0
用tasm编译就可以,而且子函数调出参数时bp就比masm编译的要多加2,以后不用masm了!!!
游客
登录 | 注册 方可回帖
返回