第3章_语言设计-例例析.ppt

* 例3-1:数据块传送程序:将以S1为起始地址的30个字符依次传送到同数据段的以S2为起始地址的一片字节存储单元里。 41H 42 H … 33 H S1 30个字符 S2 - - … - SI DI 方法一:数据块是用DB定义的一个字符串S1。用寄存器间接寻址方式访问S1和S2,即用[SI]表示S1中各字节的位移量,用[DI]表示S2中各字节的位移量。 第三章 汇编语言程序设计举例 * 程序如下: DATA SEGMENT S1 DB ‘ABCDEFGHIJKLMNOPQRSTUVW’ DB ‘XYZ0123’ S2 DB 30 DUP(?) DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV SI,OFFSET S1 MOV DI,OFFSET S2 MOV CX,30 NEXT: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START * DATA SEGMENT S1 DB ‘A’,‘B’,‘C’,‘D’,‘E’ DB ‘FGHIJKLMNOPQRSTUVWXYZ’ DB ‘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,0 MOV CX,30 NEXT: MOV AL,S1[SI] MOV S2[SI],AL INC SI LOOP NEXT MOV AH,4CH INT 21H CODE ENDS END START * DSEG SEGMENT DATA DB 20 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG GO: MOV AX,DSEG MOV DS,AX MOV CX,20 MOV SI,OFFSET DATA L01: MOV AH,01H INT 21H MOV [SI],AL INC SI LOOP L01 例3-2:从键盘上输入20个字符,然后以与键入字符的先后相同的顺序显示出来。 MOV CX,20 MOV SI,OFFSET DATA L02: MOV DL,[SI] MOV AH,02H INT 21H INC SI LOOP L02 MOV AH,4CH INT 21H CSEG ENDS END GO * CODE SEGMENT

文档评论(0)

1亿VIP精品文档

相关文档