首页 > 试题广场 >

在源程序数据段中定义有2个各200字节的字符串,其起始地址分

[问答题]

在源程序数据段中定义有2个各200字节的字符串,其起始地址分别为3600H:2600H和5600H:5200H。试编写一段程序利用串操作指令检验2串是否完全相同:若两串相同,则寄存器BX内容为0;若两串不同,则BX等于第一个串中第一个不相同字节的 偏移 地址,而该字节的内容保存在寄存器AL中。

MOV  BX, 0          ; 假设两串全同,初始BX=0           (2)
CLD
MOV  CX, 200
MOV  SI, 2600H
MOV  DI, 5200H
MOV   AX, 3600H
MOV   DS, AX
MOV   AX, 5600H
MOV   ES, AX       ; 初始化                       (6)

REPE  CMPSB        ; 串比较,直到碰到不相等或CX=0     (2)
JZ     ALLEQ        ; ZF=1, 最后一个也相等即全等、则转移
DEC   SI             ; 退回到数据不相同的地址            (2)
MOV   BX, SI                                            (1)
MOV   AL, [SI]                                           (1)
ALLEQ: HLT

发表于 2017-05-17 03:52:44 回复(0)