;***************************************************************
TITLE 数组求和
;***************************************************************
;***************************************************************
;*程序的运行环境,最低环境是386,数据段和代码段公用4GB空间,函数
;*是stdcall的调用方式,大小写敏感
.386
.model flat,stdcall
option casemap:None
;***************************************************************
;***************************************************************
;*文件包含
INCLUDE Irvine32.inc
;***************************************************************
;***************************************************************
;*数据段定义
.data
arrayB byte 0F0h,0F0h,30h
arrayBLength byte $-arrayB
;***************************************************************
;***************************************************************
;*代码段
.code
main proc
;*ebx清空,存放结果
xor ebx,ebx
;*将自动计数器清空
xor ecx,ecx
;*获得数组长度
mov cl,arrayBLength;
;*数组索引应该是长度-1,作为指向数组中最后一个元素
dec cl;
mov esi,offset arrayB;
SumOut:
mov al,[esi+ecx]
;*取数组元素
add bl,al;
;如果产生了进位则要进行进位
jc L1;
jmp L2;
L1:
inc bh;
L2:
loopd SumOut;
;因为当cx是1的时候不再执行,也就是说第一个元素没有计算到
add bl,[esi];
jc L3;
jmp L4;
L3:
inc bh
L4:
invoke DumpRegs
exit
main endp
end main
;***************************************************************
另一个数组运算程序
;************************************************************************
;*程序运行平台要求
.386
.model flat,stdcall
option casemap:none
;************************************************************************
;************************************************************************
;*包含文件
INCLUDE Irvine32.inc
INCLUDELIB kernel32.lib
INCLUDELIB user32.lib
INCLUDELIB msvcrt.lib
;************************************************************************
;************************************************************************
;*数据段定义
.DATA
source BYTE "123456789",0
target BYTE 10 DUP(0)
;************************************************************************
;************************************************************************
;*代码段定义
.code
main proc
;*目的地址的索引值
MOV edi,0
MOV ecx,sizeof source
dec ecx
L1:
MOV al,source[edi];
MOV target[edi],al;
INC edi;
loopw L1;
mov edx,offset target
invoke printf,edx;
invoke ExitProcess,0
main endp
end main
;************************************************************************
汇编中数组的加法运算-包含进位
原创
©著作权归作者所有:来自51CTO博客作者wx6405b2c488d4e的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:汇编小程序
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础 -
小数进位python 小数进位加法
专题一 加法类型四 小数加法【知识讲解】一、小数加法法则:计算小数加法,先把各数的小数点对齐(也就是把相同数位上的数对齐),再按照整数加法法则进行计算,最后在得数里对齐横线上的小数点,点上小数点。巧记口诀:小数加法点对齐,(点对齐就是相同数位对齐)从右向左计算起,(计算时从低位向高位计算)满十进一要牢记!(计算中出现满十情况,要向前一位进一)二、笔算注意事项:1.小数点要对齐;2.小数部分末尾有0
小数进位python BigDecimal 往左移动两位小数 input pattern 小数 数位 运算符