汇编程序string+1和String+2是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/03 13:27:09
DATA SEGMENT
Msg1 db "Please input a string:",'$'
String DB 100,0,100 dup(?)
Msg2 db 0ah,0dh,"Please input a sub string:$"
Srcstr DB 100,0,100 dup(?)
Msg3 db 0ah,0dh,"Find:"
Result DW ?,'$'
DATA ENDS
STACK SEGMENT PARA STACK
DB 20H DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,ES:DATA,DS:DATA
start:MOV AX,DATA
MOV DS,AX
MOV ES,AX
lea dx,Msg1
mov ah,09h
int 21h
lea dx,String
mov ah,0ah
int 21h
xor bx,bx
mov bl,String+1
lea dx,Msg2
mov ah,09h
int 21h
lea dx,Srcstr
mov ah,0ah
int 21h
LEA SI,String+2
MOV AX,SI
LOP:LEA DI,Srcstr+2
xor cx,cx
MOV CL,Srcstr+1
CLD
REPZ CMPSB
JZ MAT
INC AX

String DB 100,0,100 dup(?)
STRING+1表示STRING的偏移地址+1(0的偏移地址,跟数学运算符一致),STRING+2同理表示后面100 DUP(?)个字节数的首地址
lea dx,String
mov ah,0ah
int 21h
用10号中断输入,输入到缓冲区STRING中,
DS:DX=缓冲区首地址(STRING的偏移地址)
(DS:DX)=缓冲最大字符数(这里的最大字符数是100)
(DS:DX+1)=实际输入的字符数(也就是STRING+1)
(DS:DX+2)(也就是STRING+2)为输入的字符串的首地址

  STRING+1表示STRING的偏移地址+1;

  编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。
  在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。