|
|
加入智力问答,难度会越来越大,也会越来越有趣哦,大家踊跃参与!!!!
|
| |
|
|
| |
|
|
[汇编程序]比较从键盘上随机输入的2个字符串 |
| ;---------------------------------------------------------------------------;比较从键盘上随机输入的2个字符串STR1、STR2,若相等则输出“Y”,否则输出“N”;---------------------------------------------------------------------------
data segment ;数据段 Req1 db "Please input str1:",0ah,0dh,"$" Req2 db "Please input str2:",0ah,0dh,"$" Ok db "Now checking please wait..... ",0ah,0dh,"$" Y db "Y",0dh,0ah,"$" N db "N",0dh,0ah,"$" P1 db 100 P2 db ? Str1 db 100h dup("?") ;置100字节的缓冲区,存放Str1 Q1 db 100 Q2 db ? Str2 db 100h dup("?") ;置100字节的缓冲区,存放Str1data endscode segment ;代码段 assume cs:code,ds:data org 100h begin:mov ax,data ;赋data-->ds mov ds,ax lea dx,offset Req1 ;将Req1的地址给dx mov ah,09h ;调用中断21的09号功能显示字符串Req1 int 21h mov dx,offset P1 ;将P1的地址给dx mov ah,0ah ;调用中断21的0a号功能 int 21h mov ah,02h ;回车换行 mov dl,0dh int 21h mov ah,02h mov dl,0ah int 21h lea dx,offset Req2 ;将Req1的地址给dx mov ah,09h ;调用中断21的09号功能显示字符串Req2 int 21h mov dx,offset Q1 ;将Q1的地址给dx mov ah,0ah ;调用中断21的0a号功能 int 21h mov ah,02h ;回车换行 mov dl,0dh int 21h mov ah,02h mov dl,0ah int 21h lea dx,offset Ok ;将OK的地址给dx mov ah,09h ;调用中断21的09号功能显示字符串OK int 21h mov ah,P2 mov al,Q2 cmp ah,al ;比较从键盘接收的字符 jne exit ;不相等则跳到exit段,执行程序 mov di,0ffffh ;-1-->计数器di next: inc di ;计数器di自加1 mov bh,Str2[di] ;送Str2的下标至bh cmp Str1[di],bh ;比较字符串Str1和Str2 jne exit ;不相等则跳到exit段,执行程序 loop next ;循环执行next lea dx,offset Y ;将Y的地址给dx mov ah,09h ;调用中断21的09号功能显示字符串Y int 21h jmp exit1 ;跳到exit1段结束程序 exit: mov ah,09h ;exit段 lea dx,offset N int 21h exit1:mov ah,4ch ;exit1段 int 21hcode ends ;程序结束 end begin | |
|
|
» 1 »
|
| |
| ♀Links |
|
|