将以S1为起始地址的30个字符依次传送到同数据段的以S2课件.pptVIP

  • 8
  • 0
  • 约6.59千字
  • 约 25页
  • 2016-12-28 发布于浙江
  • 举报

将以S1为起始地址的30个字符依次传送到同数据段的以S2课件.ppt

* * 例1、将以S1为起始地址的30个字符依次传送到同数据段的以S2为起始地址的一片字节存储单元里。 开始 OFFSET S1→SI OFFSET S2→DI 30→CX ([SI])→AL (AL)→[DI] (SI)+1→SI (DI)+1→DI (CX)-1→CX (CX)≠0 END N Y 开始 0→SI 30→CX (S1[SI])→AL (AL)→S2[SI] ( SI)+1→SI (CX)-1→CX (CX)≠0 END N Y 开始 OFFSET S1→BX 0→SI 15→CX ([BX+SI])→AX (AX)→[BX+SI+30] (SI)+1→SI (SI)+1→SI (CX)-1→CX (CX)≠0 END N Y 方法一、采用寄存器间接寻址方法。 DATA SEGMENT S1 DB ‘ABCD……VWX’ DB ‘YZ0123’ S2 DB 30 DUP(?) DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS ,AX MOV SI,OFFSET S1 ;S1的位移量→SI MOV DI,OFFSET S2 ;S2的位移量→DI MOV CX,30 ;循环次数30→CX NEXT: MOV AL,[SI] ;([SI])→AL MOV [DI],AL ;([AL])→[DI] INC SI ;(SI)+1→SI INC DI ;(DI)+1→DI LOOP NEXT ;(CX)-1→CX,(CX)≠0转 MOV AH,4CH ;程序结束转DOS INT 21H CODE ENDS END START 方法二、采用变址寻址方式 DATA SEGMENT S1 DB ‘A’,‘B’,‘C’,……,‘W’ DB ‘X’,‘Y’,‘Z’,‘0’,‘1’,‘2’,‘3’ S2 DB 30 DUP(?) DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS,AX MOV SI,0H MOV CX,30 ;循环次数30→CX NEXT: MOV AL,S1[SI] ;([SI+S1])→AL MOV S2[DI],AL ;([AL])→[DI+S2] INC SI ;(SI)+1→SI LOOP NEXT ;(CX)-1→CX,(CX)≠0转 MOV AH,4CH ;程序结束转DOS INT 21H CODE ENDS END START 方法三、采用基址+变址寻址方式 DATA SEGMENT S1 DW ‘BA’,‘DC’,‘FE’,……,‘VU’ DW ‘XW’,‘ZY’,‘10’,‘32’ S2 DW 15 DUP(?) DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA ;数据段寄存器有装填 MOV DS,AX MOV BX,OFFSET S1 MOV SI,0H MOV CX,15 ;循环次数15→CX NEXT: MOV AX,[BX+SI] ;([BX+SI])→AX MOV [BX+SI+30],AX ;([AX])→[BX+SI+30] I

文档评论(0)

1亿VIP精品文档

相关文档