汇编模块化处理

;**********************************************************************
TITLE 整数求和
;**********************************************************************

;**********************************************************************
;*程序运行平台要求
.386
.model flat,stdcall
option casemap:none
;**********************************************************************

;**********************************************************************
;文件包含
INCLUDE Irvine32.inc
;**********************************************************************

;**********************************************************************
;宏定义部分
INTEGER_COUNT=5;
;**********************************************************************

;**********************************************************************
;数据段定义
.data
str1 byte "please Enter a integer",0dh,0ah,0
str2 byte "the sum of the input is",0
arrayByte byte INTEGER_COUNT DUP(0)
;**********************************************************************

;**********************************************************************
;代码段定义
.code
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;函数定义:显示提示信息,请用户输入
;函数参数:使用edx作为局部变量
WarnDis proc USES edx
  mov edx,offset str1;
  call WriteString;
  ret
WarnDis endp
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;函数定义:给全局变量数组从用户输入处,进行赋值
;函数参数:esi ecx ebx
InputArray PROC USES  esi ecx ebx
  mov esi,offset arrayByte;
  mov ebx,0
  mov ecx,length arrayByte;
  LInput:     
     call ReadInt
     mov [esi+ebx],eax
     inc ebx
  loop LInput
  ret
InputArray endp
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;函数定义:对数组进行求和过程
;函数参数:esi ecx ebx
Sum proc uses esi ecx ebx  
  mov esi,offset arrayByte;
  mov ecx,length arrayByte
  xor eax,eax
  mov ebx,0  
  LSum:
    mov dl,[esi+ebx]
    add al,dl
    ;检测是否有进位发生
    JC cfProc
    JMP final
    cfProc:
    inc ah;
    final:
    inc ebx
  loop LSum;
  ret
Sum endp
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
main proc
  call WarnDis
  call InputArray
  call Sum  
  call WriteInt
  exit
main endp
end main
;**********************************************************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
易语言汇编模块----清风汇编 版本 2 .子程序 add_eax, 字节集, 公开, add eax,常数 → { 131, 192 } + 到字节集 (到字节 (参数)) 或 { 5 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_eax_edx, 字节集, 公开, add eax,edx → { 3, 194 } .子程序 add_eax_ptr, 字节集, 公开, add eax,[常数] { 3, 5 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_ebx, 字节集, 公开, add ebx,常数 → { 131, 195 } + 到字节集 (到字节 (参数)) 或 { 129, 195 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_ebx_eax, 字节集, 公开, add ebx,eax → { 3, 216 } .子程序 add_ecx, 字节集, 公开, add ecx,常数 → { 131, 193 } + 到字节集 (到字节 (参数)) 或 { 129, 193 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_edx, 字节集, 公开, add edx,常数 → { 131, 194 } + 到字节集 (到字节 (参数)) 或 { 129, 194 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_esi, 字节集, 公开, add esi,常数 → { 131, 198 } + 到字节集 (到字节 (参数)) 或 { 129, 198 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 add_esp, 字节集, 公开, add esp,常数 → { 131, 196 } + 到字节集 (到字节 (参数)) 或 { 129, 196 } + 到字节集 (参数) .参数 参数, 整数型 .子程序 call, 字节集, 公开, 返回5个字节集 .参数 修改地址, 整数型, , 不能用A+B的形式,只能是一个变量或值 .参数 目标地址, 整数型, , 不能用A+B的形式,只能是一个变量或值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值