汇编编写完整程序,从键盘输入两串字符OLDS和NEWS,如果两个字符串相同,显示“YES”串,若不同显示“NO”串。
时间: 2024-05-14 21:12:56 浏览: 127
以下是汇编代码:
```
.model small
.stack 100h
.data
oldString db 20
newString db 20
messageYes db "YES$"
messageNo db "NO$"
.code
main proc
mov ax, @data
mov ds, ax
; Input first string
lea dx, oldString
mov ah, 0Ah
int 21h
; Input second string
lea dx, newString
mov ah, 0Ah
int 21h
; Compare the strings
xor si, si ; Set SI to 0
mov cx, 20 ; Set CX to the maximum length of the strings
cld ; Clear the direction flag
repe cmpsb ; Compare the strings byte by byte
jz yesMsg ; If the strings are equal, jump to the YES message
; If the strings are not equal, display the NO message
lea dx, messageNo
mov ah, 09h
int 21h
jmp exitProg
yesMsg:
; If the strings are equal, display the YES message
lea dx, messageYes
mov ah, 09h
int 21h
exitProg:
mov ah, 4Ch
int 21h
main endp
end main
```
在程序中,我们首先定义了两个字符串变量`oldString`和`newString`,每个变量的长度为20个字节。然后定义了两个消息变量`messageYes`和`messageNo`,分别用于显示“YES”和“NO”。
在主程序中,我们首先使用`int 21h`中断来读取键盘输入的两个字符串,分别存储在`oldString`和`newString`变量中。然后使用`repe cmpsb`指令来比较两个字符串是否相同。如果相同,就跳转到显示“YES”消息的代码段;否则,就显示“NO”消息。
最后,我们使用`int 21h`中断来结束程序的执行。
阅读全文