微机原理: 编写完整程序,比较两个字符 STRING1 和 STRNG2 所含字符是否完全相同,若相同则显示“NATCH”,若不同则显示”NO MATCH”
时间: 2024-03-09 17:48:16 浏览: 78
blizzardctf2017:暴雪CTF 2017
以下是一个实现上述要求的汇编语言程序,针对 8086 CPU:
```asm
.model small
.stack 100h
.data
string1 db 100 dup(0), '$'
string2 db 100 dup(0), '$'
match db 'MATCH$'
no_match db 'NO MATCH$'
.code
mov ax, @data
mov ds, ax
; 读入字符串1
lea dx, string1
mov ah, 0Ah
int 21h
; 读入字符串2
lea dx, string2
mov ah, 0Ah
int 21h
; 比较两个字符串
lea si, string1
lea di, string2
cmpsb
jne mismatch
cmpsb
jne mismatch
mov dx, offset match
jmp print
mismatch:
mov dx, offset no_match
print:
; 输出结果
mov ah, 09h
int 21h
mov ah, 4Ch
int 21h
end
```
程序首先定义了两个字符串 string1 和 string2,以及匹配和不匹配的字符串 match 和 no_match。然后使用 21h 中断读入两个字符串,存储在 string1 和 string2 中。接着使用 cmpsb 指令比较两个字符串,如果不匹配则跳转到 mismatch 标签,输出 no_match 字符串,否则继续比较,直到两个字符串完全匹配。如果两个字符串完全匹配,则跳转到 print 标签,输出 match 字符串。
最后程序使用 21h 中断输出字符串,然后使用 4Ch 中断退出程序。
阅读全文