python实现矩阵相加_汇编语言实例:矩阵行求和

前面《二维数组简介》一节中已经展示了如何计算字节矩阵中单个行的总和。尽管这个解决方案有些冗长,现在还是要看看能否用宏来简化任务。首先,我们来回顾一下 calc_row_sum 过程:

;------------------------------------------------------------

; calc_row_sum

; 计算字节矩阵中一行的和数

; 接收: EBX = 表偏移量, EAX = 行索引

; ECX = 按字节计的行大小

; 返回: EAX 为和数

;------------------------------------------------------------

calc_row_sum PROC uses ebx ecx edx esi

mul ecx ; 行索引 * 行大小

add ebx,eax ; 行偏移量

mov eax,0 ; 累加器

mov esi,0 ; 列索引

L1: movzx edx,BYTE PTR[ebx + esi] ; 取一个字节

add eax,edx ; 与累加器相加

inc esi ; 行中的下一个字节

loop L1

ret

calc_row_sum ENDP

从把 PROC 改为 MACRO 开始,删除 RET 指令,把 ENDP 改为 ENDM。由于没有宏与 USES 伪指令功能相当,因此插入 PUSH 和 POP 指令:

mCalc_row_sum MACRO

push ebx ;保存被修改的寄存器

push ecx

push esi

mul ecx ;行索引x行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值