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

c语言转化为汇编语言

xianlaideren 发布于 2018-03-15 14:27, 4569 次点击
把下面的 C 代码转换成汇编代码。数组 a 和 b 分别 存放在以 0x4000 和 0x5000 为起始 地址的存储区内,类 型为 long(即 32 位 ) 。 把编写的汇编语言进行编译连接, 并进 行调试。
for (i=0; i<8; i++)
{ a[i] = b[7-i];
}
新手上路,求大佬帮助
2 回复
#2
Valenciax2018-03-16 20:03


没有规定哪种汇编?那就用x86汇编,最简单代码,意思一下好了...

假设ds已指向资料段

push ds
pop es ;对齐ds和es
mov edi,4000h  ;a数组地址起点
mov esi,5000h+7*4 ;b数组地址结束
mov ecx,8 ;次数
next:
std  ;反向
lodsd  ;读入ds:esi入eax, esi自动减4(32bit双字,即4字节)
cld  ;正向
stosd  ;eax值写入es:edi, edi自动加4(32bit双字,即4字节)
loop next



[此贴子已经被作者于2018-3-16 21:25编辑过]

#3
艾瑞克2018-05-20 14:18
用 GCC(Linx 自带没有的话 输入sudo apt-get install gcc)  WinGw (windows  下载网站https://)   安装之后

进入cmd   或者 终端  cd 进入 所要转成汇编语言的C语言源文件目录

最后使用 编译命令   gcc   *.c -S (大写)
  
*.c :为C语言源文件
1