汇编.if 和.endif的应用

原创 2013年12月05日 20:59:17
;***********************************************
TITLE .IF和.ELSEIF
;***********************************************



;***********************************************
;程序运行平台
.386
.MODEL FLAT,STDCALL
OPTION CASEMAP:NONE
;***********************************************


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

;***********************************************
.DATA
result byte ?
str1 byte "测试成功",0dh,0ah,0
str2 byte "测试失败",0dh,0ah,0
testByte byte 234
;***********************************************

;***********************************************
;代码段
.CODE
main proc
  .if testByte>200
     mov result,1
  .else
     mov result,0
  .endif
  .if result>0
     mov edx,offset str1
     call WriteString
  .else
     mov edx,offset str2
     call WriteString
  .endif
  exit
main endp
end main

;***********************************************


;***********************************************************
TITLE 查找数组中一共有多少个0
;***********************************************************

;***********************************************************
;程序运行平台说明
.386
.MODEL FLAT,STDCALL
OPTION CASEMAP:NONE
;***********************************************************

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

;***********************************************************
;数据段定义
.DATA
testArray byte 1,1,4.2,89,0,23,89,56,0,45,0,12
arrayLength=$-testArray
strSucess byte "the number of Zero is ",0
;***********************************************************

;***********************************************************
;代码段定义
.CODE
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;函数说明:寻找全局数组中0的个数
;函数参数:ecx
;返回值  :无
getZeroCount proc uses esi eax
   mov esi,arrayLength;
   dec esi
   xor eax,eax
   .while esi!=0
     .if testArray[esi]==0
         inc eax
     .endif
     dec esi;    
   .endw
   push eax
   mov edx,offset strSucess
   call WriteString
   pop eax
   call WriteInt
   ret;
getZeroCount endp
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
main proc
   call getZeroCount
   exit
main endp
end main
;***********************************************************



;*********************************************
TITLE 数组求和
;*********************************************


;*********************************************
;程序运行平台说明
.386
.MODEL FLAT,STDCALL
OPTION CASEMAP:NONE
;*********************************************

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


;*********************************************
;数据段定义
.DATA
arrayW DWORD 10,60,20,33,72,89,45,65,72,18
sample DWORD 50
ArraySize DWORD sizeof arrayW/type DWORD
sum DWORD  0
strSuc BYTE "the sum is",0
;*********************************************


;*********************************************
;代码段定义
.CODE
main proc
   mov ecx,ArraySize      
   dec ecx
   mov eax,ecx
   shl eax,2
   .while ecx>0
      mov ebx,arrayW[eax]
      .if ebx>sample
          mov ebx,arrayW[eax]
          add sum,ebx
      .endif
      dec ecx
      mov eax,ecx
      shl eax,2
   .endw
   mov edx,offset strSuc
   call WriteString  
   xor eax,eax
   mov eax,sum
   call WriteInt
   exit
main endp
end main
;*********************************************



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

汇编语言的应用

2014-7-12 汇编语言的应用 历史上,汇编语言曾经是非常流行的程序设计语言之一。随着软件规模的增长,以及随之而来的对软件开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言...
  • lr2131
  • lr2131
  • 2014-07-12 11:25
  • 1928

80386(win32汇编) .if .else .endif 伪指令的使用

; 80386(win32)汇编 ;.if .else .endif的使用 ;作者:邱于涵 ;Time:2017年6月30日16:46:53 ;QQ:1031893464 .386 .model fl...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

#if, #elif, #else, and #endif Directives (C/C++)

#if, #elif, #else, and #endif Directives (C/C++) Visual Studio 2010 Other Versions     * Visu...

C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)

文章出处:http://hi.baidu.com/xiaomambzh/blog/item/5ed4801c4825f879f624e4b9.html 预处理过程扫描源代码,对其进行初步的转换,产生...

#if, #elif, #else, #endif 使用

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,...

#if, #elif, #else, #endif 使用

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,...

VC 编译连接(#if #ifdef #ifndef #else #endif defened)

一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条...

C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef_Embeder

有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,...

条件编译解决/**/注释嵌套的问题(#if 0 #endif) (哈哈,写的很搞笑啊~转载的)

(hplonline)2010.12.25 《C陷阱与缺陷》里面有一个例子,ex1-2,谈到了注释嵌套的问题。 不过这个excercise讲的只是怎么通过写一段代码来检验编译器,并没有给出解决...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)