【问题标题】:"Hello World" in Openvms/Itanium assembly example?Openvms/Itanium 程序集示例中的“Hello World”?
【发布时间】:2014-03-04 20:10:53
【问题描述】:

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

谢谢

【问题讨论】:

  • 它有助于简化使用 ias 汇编程序的学习曲线。我试图通过阅读文档并查看 C 示例的汇编列表来将所有部分组合在一起,但如果有人已经这样做了,那么我可以将示例放在 Rosettacode 上并帮助大家。

标签: assembly openvms itanium


【解决方案1】:

首先,使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多