assembly - Openvms/Itanium 程序集示例中的 "Hello World"?

标签 assembly openvms itanium

我一直在网上搜索为 OpenVMS/Itanium 上的 intel ia64 汇编器编写的示例“Hello World”程序。有人做过吗?

谢谢

最佳答案

首先,使用 crtl 中的 printf,省略展开信息指令:

.vms_module_name "HELLO"
.vms_module_version "V1.0"

.section .rdata, "a", "progbits"
.align 8
.STRING:
stringz "Hello World!\n"

.global DECC$TXPRINTF
.type DECC$TXPRINTF, @function

.text
.global HELLO
.proc HELLO

HELLO:

PROLOGUE:
alloc loc2 = ar.pfs, 0, 4, 1, 0
mov loc3 = sp
mov loc1 = b0

CODE:
addl out0 = @ltoff(.STRING), gp
;;
ld8 out0 = [out0]
mov loc0 = gp
br.call.sptk.many b0 = DECC$TXPRINTF
;;

EPILOGUE:
mov gp = loc0
mov ar.pfs = loc2
mov b0 = loc1
mov sp = loc3
br.ret.sptk.many b0
.endp HELLO

关于assembly - Openvms/Itanium 程序集示例中的 "Hello World"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22181958/

相关文章:

assembly - MASM 在保护模式下生成错误的调用目标

openvms - OpenVMS 中的 DCL 符号语法

linux - 如何测试你的 Linux 是否支持 SSE2

linux - 甲骨文毫秒 : Avoid blank-padding in Embedded SQL

c++ - 我的 C++ 程序应该支持 IA64 还是只支持 x64?

linux - 如何获得二进制文本部分的偏移量和大小?

linux - Linux下使用amd64的汇编语言程序

c - 查找哪条指令在 Cortex M3 上导致了陷阱

openvms - 如何访问正在运行的应用程序中的调试信息