关于内嵌汇编的问题:

[复制链接]
查看11 | 回复2 | 2021-1-27 06:46:22 | 显示全部楼层 |阅读模式
大家好,对汇编不是很了解,现在要做的是从WINDOWSX86汇编转成LINUXARM汇编,难度很大
希望大家给与指导。
内嵌程序一:
WORDlookKbits(BYTEk)
{
_asm{
movdl,k//k值给DL
movcl,16//16给CL
subcl,dl//CL-DL
moveax,[wordval]//将wordval地址的值给EAX
shreax,cl//EAX右移CL位,EAX的值作为函数返回值。
}
}
内嵌程序二:
SWORDget_svalue(BYTEk)
_asm{
xorecx,ecx\\ECX清零
movcl,k\\参数K赋值给CL
moveax,[wordval]\\将wordval地址中的值给EAX
shleax,cl\\将EAX值左移CL位
shreax,16\\将EAX值右移16位
deccl\\CL减1
bteax,ecx\\难证EAX中第ECX(CL)位是1还是0
jcend_macro\\如果是1跳转结束
signed_value:inccl\\如果是0CL加1
movebx,[start_neg_pow2]\\start_neg_pow2地址值给EBX
addax,wordptr[ebx+ecx*2]\\将EBX+偏移地址中的值给AX并作为返回值。
end_macro:
}
}
现有几个问题:
1、以上是我对X86下汇编的理解,请问对吗,有没有错误的地方?
2、如果替换成ARM下汇编moveax,[wordval]这句该怎么写,主要是如何用C变量的值。
3、程序二的bteax,ecx的功能在ARM汇编用什么指令实现。谢谢了。


分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:46:22 | 显示全部楼层
大家有知道的吗?
回复

使用道具 举报

千问 | 2021-1-27 06:46:22 | 显示全部楼层
???
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行