几个c++语句的汇编实现(H1指令)

本文通过具体的汇编指令展示了如何进行内存地址的加载、存储及运算等基本操作,并演示了间接寻址的方式。

;*p = 5
  ldc 5   ;
  push
  ld p ;load p's value
  sti  ;save 5 to mem[p's value]
  ldi  ;get the value
  dout
  ldc '/n'
  aout
;*** q = 10
  ldc 10
  push
  ld q  ;ac = 17 *q's addr
  ldi   ;ac = 18 **q's addr
  ldi   ;ac = 19 ***q's addr
  sti   ;save 10 to ***q,this address is result
;x = ***q
  ldi   ;ld result,***q's value
  st x  ;x = ***q;
  ld x  ;
  dout  
  ldc '/n'
  aout
;*(p+1) = 6
  ldc 6
  push
  ld p + 1 ;load (p+1)'s value,should be 81
  sti   ; save 6 to *(p+1)
  ldi   ;*(p+1).value,get the value
  dout  ;check the value if 6
  ldc '/n'
  aout
;*p = *p +1

  ld p  ;80
  ldi   ;addr 80 value: should be 5
  add @1
  push
  ld p
  sti   ;save *p+1 to *p
  ld p
  ldi   ;addr 80 value: should be 6
  dout
  ldc '/n'
  aout
;r = p
  ld p ;ac = p's addr
  st r
  ld r
  dout
  halt
p:  dw 80
  dw 81
q:  dw  * + 1; *q  is next address.(* + 1)
  dw * + 1; **q is next address.(* + 1)
  dw  * + 1; ***q is next address.(* + 1 = result)
result: dw 0
x:  dw  0
r:  dw  0
@1:  dw  1 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值