assembly.asm

来自「2个字符串的比较」· 汇编 代码 · 共 96 行

ASM
96
字号
data1 segment
    strtip1 db 'please input the first string:$'
    strtip2 db 0ah,0dh,'please input the second string:$'
    str1 db 100,0,100 dup(?)
    str2 db 100,0,100 dup(?)
    result db 0ah,0dh,"the result is:"
    a db ?,?,'$'
data1 ends


stack segment
db 20 dup(0)
stack ends

code segment

	assume cs:code,ds:data1,ss:stack,es:data1
start:
    mov ax,data1
    mov ds,ax
    mov es,ax

    lea dx,strtip1
    mov ah,09h
    int 21h

    lea dx,str1
    mov ah,0ah
    int 21h

    mov ch,str1+1
    lea dx,strtip2
    mov ah,09h
    int 21h

    lea dx,str2
    mov ah,0ah
    int 21h
    mov cl,str2+1

    lea si,str1+2
    lea di,str2+2
 lop:
    mov bh,[si]
    mov bl,[di]


    inc si
    inc di


    cmp bh,bl
    ja Qabove
    cmp bh,bl
    jb Qbelow

    dec cl

    dec ch

    cmp cl,00h
    jz Qequal
    cmp ch,00h
    jz Qequal

    jmp lop
Qabove:
    mov a,'1'
    jmp exit
Qbelow:
    mov a,'-'
    mov a+1,'1'
    jmp exit
Qequal:
    cmp cl,00h
    ja Qbelow
    cmp ch,00h
    ja Qabove

    mov a,'0'
    jmp exit

exit :

    lea dx,result
    mov ah,09h
    int 21h


    mov ah,4ch
    int 21h


code ends
	end start

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?