我在function resetClick() {
var tempChanged = "X";
var tempTemplate = "";
if (tempChanged == "X" && tempTemplate != "X") {
if (confirm("Modification in progress , do you wish to save?"))
<!-- changed okcode from reset to /8 so that the exit command code will be used. -->
<!-- SetOkCode("netmzps_0000004_100", "/8"); -->
SettingOkCode("/8", "netmzps_0000004_100","","","");
}
else
<!-- changed okcode from reset to /8 so that the exit command code will be used. -->
<!-- SetOkCode("neetmzps_0000004_100", "/8"); -->
SettingOkCode("/8", "netmzps_0000004_100","","","");
}
<a href="javascript:resetClick();" class="TELUSHighlightButton" name=" Start over " title="Click here to initialise all fields." onmouseover="status=' ';return true;" onmouseout="status=' ';"> Start over </a>
中有这个相对简单的程序
它打印两个C
的总和:
ints
我使用此命令生成汇编代码:#include <stdio.h>
int main()
{
int a = 5;
int b = 8;
printf("a + b = %d", a+b);
getchar();
}
以获取汇编代码。
gcc -S prog.c
如何从命令行运行此 .file "prog.c"
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "a + b = %d\0"
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
LFB10:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
andl $-16, %esp
subl $32, %esp
call ___main
movl $5, 28(%esp)
movl $8, 24(%esp)
movl 28(%esp), %edx
movl 24(%esp), %eax
addl %edx, %eax
movl %eax, 4(%esp)
movl $LC0, (%esp)
call _printf
call _getchar
movl $0, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE10:
.ident "GCC: (GNU) 5.3.0"
.def _printf; .scl 2; .type 32; .endef
.def _getchar; .scl 2; .type 32; .endef
?所有搜索都使用我prog.s
无法识别的asm
和fasm
命令在Linux上运行此操作。
我的操作系统:Windows 10
答案 0 :(得分:1)
只是您的.c文件在另一种编程语言中,您仍需要组装和链接它。 gnu工具实际上允许你使用c编译器执行此操作,你应该能够将它提供给gcc并且它将理解它是汇编语言而不是C并且一旦汇编就会为你调用链接器,就像它在你提供它时一样一个.c文件。理想情况下,它将链接到您的目标主机,以便它运行。然后,您可以使用汇编语言修改ascii字符串,将更多字符添加到a + b,重新运行gcc,看看它是否正在使用asm。