HLA中的类

program classDemo;

#include ("stdlib.hhf");

type
People: class
        
        var
            pName: string;

     procedure getName; @returns( "ebx" );
        
     procedure setName(myName:string);


    procedure create;

endclass;

    static

    procedure People.getName;
        begin getName;
            stdout.put("invoke getName", nl);
            mov(this.pName, ebx);
            stdout.put("invoke getName successfully", nl);
        end getName;
        
        
     procedure People.setName(myName:string);
        begin setName;
            stdout.put("invoke setName()", nl);
            mov(myName, this.pName);

            stdout.put("invoke setName() successfully!!", nl, nl);
        end setName;


    procedure People.create;
        begin create;
            push( eax );
            mem.alloc( @size( People ) );
            mov(eax, esi);
            stdout.put( "size People = ", (type uns32 eax), nl); 
            str.alloc( @size(char) * 100 );
            mov(eax, this.pName);
            pop(eax);
            stdout.put("this.pName = ", (type uns32 this.pName), nl);
            stdout.put("create successfully invoke!!", nl, nl);
        end create;

static
    iName: string;
    Me: People;
    pp: pointer to People;

begin classDemo;
    
    Me.create();
    mov(esi, pp);
    str.alloc(10);
    mov(eax, iName);
    str.put(iName, "yang");
    pp.setName(iName);
    pp.getName();

    stdout.put("Your name is ", (type string ebx) , nl);
    str.free(iName);

end classDemo;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值