汇编程序解释,完整解释哦
的有关信息介绍如下:data segment------定义一个段,段名datal1 db 'abcde'-------定义字节型数据,标号l1x1 db 'yes$'-------定义字节型数据,标号x1x2 db 'no$'--------定义字节型数据,标号x2data ends--------data段结束data1 segment-------定义一个段,段名data1l2 db 'abjde'------定义字节型数据,标号l2data1 ends--------data1段结束code segment----------定义一个段,段名codeassume cs:code,ds:data,es:data1-----------伪指令,假设code段与cs关连,假设data与ds关连,假的data与es关连,这条指令只是给编译器看的,不会被编译成机器码start:mov ax,data-------标号start,代表程序的入口地址。下面连续8条指令为repe cmpsb指令做铺垫,repe是重复执行字符串的指令,cmpsb是比较字符串的指令mov ds,ax------用于字符串比较的第一个段地址mov ax,data1mov es,ax-------用于字符串比较的第二个段地址,因为比较的是两个地址处的字符串mov cx,5--------设置cx值,用来计数repe重复次数lea si,l1---------将l1标号地址传送给si,这个si是给ds的偏移lea di,l2---------将l2标号地址传送给你di,这个di是给es的偏移cld------将df标志位置0,这样repe cmpsb就可以正向执行repe cmpsb---------上面的铺垫工作完成,就可以执行这个指令,开始多次重复比较字符jne next---------如果取到的两个字符不相同,那么跳转到标号next处,如果相同,则继续往下执行lea dx,x1-------将x1标号地址传给dx,这是21h中断例程的一个参数,21h中断例程的9号命令就是用来把ds:dx指向的字符串输出到屏幕上,现在ds中的值data,dx的值是x1的地址,那么ds:x1指向的是‘yes$’字符串的首地址mov ah,9--------这是设置ah,用来指定下面21h中断例程用的哪个命令int 21h-------调用21h中断例程jmp exit----------跳转到标号exit处next:lea dx,x2-------将x2标号处地址传给dx,跟上面lea dx,x1一样的功能mov ah,9-------跟上面功能一样int 21h---------跟上面功能一样exit:mov ah,4ch---------这个应该知道的吧int 21h-----------这个也应该知道code ends---------code段结羡烂薯束end start--------整个程序结束,指历扰定start标号为程序入口。 总结:这个程序的意思就是比较l1和l2处两个字兄者符串是否完全相同,如果完全相同就在屏幕输出yes字符串,不同则输出no字符串。