首页 > 编程语言 >汇编语言中ifidn和ifdif的作用

汇编语言中ifidn和ifdif的作用

时间:2023-07-20 17:25:59浏览次数:39  
标签:语句 IFIDN 汇编语言 ifidn ifdif 参数 IFIDNI 大小写

来源

在isa-l项目里的汇编文件中看到了有ifidn之类的写法,代码如下。第一遇到,便查阅资料记录一下用法。

%ifidn __OUTPUT_FORMAT__, elf32
 [bits 32]
%else
 default rel
 [bits 64]

ifidnIFIDN(大小写都可以),是两条伪指令,用于对两个宏定义的参数进行比较,最初误以为用法类似条件编译ifdef

IFIDN:比较两个参数相同

IFIDN比较参数1和参数2,若两参数相同,则处理条件内的语句块,否则跳过条件内的语句块或者处理反条件内的语句块。

%ifidn <参数1>,<参数2>
 //两参数相同
%else
 //两参数不同

IFDIF:比较两个参数相同

IFDIF比较参数1和参数2,若两参数不同,则处理条件内的语句块,否则跳过条件内的语句块或者处理反条件内的语句块。

%ifdif <参数1>,<参数2>
 //两参不同
%else
 //两参数相同

IFIDNI和IFDIFI:表示参数大小写不敏感

若用IFIDNI替代IFIDN,用IFDIFI替代IFDIF,则表示对参数拼写的大小写不敏感。

  • IFIDN 伪指令执行的是区分大小写的比较。
  • IFIDNI 伪指令在两个符号(包括宏参数名)之间进行不区分大小写的比较,如果它们相等,则返回真。

标签:语句,IFIDN,汇编语言,ifidn,ifdif,参数,IFIDNI,大小写
From: https://www.cnblogs.com/liuhanxu/p/17568611.html

相关文章

  • 8086汇编语言精讲3 :寄存器(内存访问)
    字与字节  数据总线宽度的真谛  8086cpu不支持直接将数据送入段寄存器的操作,而ds就是一个段寄存器,所以只要用其他寄存器来中转数据进去ds中  栈   逆序效果     ......
  • 汇编语言(王爽)实验10.2
    assumecs:codecodesegmentstart:movax,4240Hmovdx,000FHmovcx,0AHcalldivdwmovax,4c00hint21hdivdw:movbx,ax;X的低16位暂存在bx中movax,dxmovdx,0divcxmovsi,ax......
  • 汇编语言程序设计(二)之寄存器
    系列文章汇编语言程序设计(一)寄存器在学习汇编的过程中,我们经常需要操作寄存器,那么寄存器又是什么呢?它是用来干什么的?它有什么分类?又该如何操作?…你可能会有许多的问题,答案都会在本文中进行揭晓。1寄存器的概念一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线......
  • 8086汇编语言精讲2 :寄存器
        mov就是赋值;add就是+=; 为什么044CH(0可去,因为是高位补的0),也就是44CH<十六进制数在十六位下最大数FFFFH(也就是16=2^4)=65535D(D指的十进制,H指的十六进制),所以是不算溢出,因为C本来就是十六位进制中的一个位值,和1-9是一样的.Tips:如果使用十进制中的数代......
  • 汇编语言(王爽)实验10.3
    assumecs:codedatasegmentdb10dup(0)codesegmentstart:movax,12666movbx,datamovds,bxmovsi,0calldtocmovdh,8movdl,3movcl,2callshow_strmovax,4c00hint21hdtoc:pushaxpu......
  • go汇编语言-闭包是如何实现的?
    分析的代码packagemainfunctest(aint)func(iint)int{returnfunc(iint)int{a=a+ireturna}}funcmain(){f:=test(1)a:=f(2)println(a)b:=f(3)println(b)}代码比较简易,test函数产生一个闭包......
  • 汇编语言学习笔记
    汇编语言学习笔记目录第一章基础知识第二章寄存器(CPU工作原理)第三章寄存器(内存访问)第四章第一个程序第五章[BX]和loop指令第六章包含多个段的程序第七章更灵活定位内存地址第八章数据处理的两个基本问题第九章转移指令的原理第十章call和ret指令第十一章标......
  • 8086汇编语言基础学习(四)——汇编语言程序设计基础
    8086汇编语言基础学习(四)——汇编语言程序设计基础DOS中常用的系统调用:1.单字符输入并显示(01H功能调用)描述:从键盘输入一个字符的ASCII码送入寄存器AL中,并送显示器显示。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中格式: 2.单字符......
  • 汇编语言(王爽)实验9
    编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcometomasm!'。【解析】先将字符属性存在dx寄存器的高八位dh中,再将字符的ASCII码存在dx寄存器的低八位dl中,然后将dx写入显存中。使用两层循环,内层将ASCII码存入dl并将dx写入显存,循环16次;外层改变属性,循环3次。用......
  • 8086汇编语言精讲1 :基础知识
    基础知识   也就是说伪指令和其他符号在编译器上将汇编指令翻译成的机械码改动,形成新的机械码      8086可以寻址2^16大小的数据量,因为它有16根数据总线,同时是在2进制下计数         ......