串操作指令
运用MOVSB指令
DATA SEGMENT NUM1 DB 50 DUP(0A0H) NUM2 DB 50 DUP(0) COUNT EQU LENGTH NUM2 ENDS
DATA CODE
SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM1 MOV DI,OFFSET NUM2 MOV CX,COUNT NEXT: MOVSB LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START
例2:同学课后应用以上指令编辑传送100字的程序
DATA CODE
SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM1 MOV DI,OFFSET NUM2 MOV CX,COUNT NEXT: MOVS BYTE PTR[DI],BYTE PTR[SI] LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START
START: MOV AX,DATA NEXT: MOV AL,[DI] MOV DS,AX MOV [SI],AL MOV DI,OFFSET NUM1 INC SI MOV SI,OFFSET NUM2 INC DI MOV CX,50 LOOP NEXT
运用MOVS指令
DATA SEGMENT NUM1 DB 50 DUP(0A0H) NUM2 DB 50 DUP(0) COUNT EQU LENGTH NUM2 ENDS
基 本 串 操 作
STOR
REP 重 复 REPE/REPZ 前 缀 REPNE/REPNZ
1.串操作指令的特点 (1)通常须用“SI”、“DI”、“CX”、”ES“寄存器; (2)应严格区分源与目的寄存器的使用; (3)SI与DI自动地址改变的方向,由DF的值控制; (4)CX作为计数器,特别是应用重复前缀指令时; (5)×××B为字节操作、 ×××W为字操作,无操作数指令。 2.串操作指令应用 MOV、MOVS、MOVB等指令的编程比较 例1:应用汇编语言,编辑传送50个字节的完整程序 运用MOV指令
运用MOVSB与REP指令
DATA SEGMENT NUM1 DB 50 DUP(0A0H) NUM2 DB 50 DUP(0) COUNT EQU LENGTH NUM2 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM1 MOV DI,OFFSET NUM2 MOV CX,COUNT REP MOVSB MOV AH,4CH INT 21H CODE ENDS END START
七.8086微处理器串操作指令 MOVS CMPS SCቤተ መጻሕፍቲ ባይዱS LODS
点击该列
串传送指令 MOVSB、 MOVSW 串比较指令 CMPSB、CMPSW 串搜索指令 SCASB、SCASW 读串操作指令 LODSB、LODSW 写串操作指令 STORB、STORW 无条件重复前缀指令 零条件重复前缀指令 非零条件重复前缀指令