- 47
- 0
- 约1.05万字
- 约 13页
- 2017-06-05 发布于湖北
- 举报
第四章? 汇编语言程序设计 4-‘abcdef’
N EQU $-CHAR1;变量必须先定义后使用,而不能相反
CHAR2 DB N DUP(0);不能把此句与上一句对调 DDD0??? ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS ;P126(代码段和堆栈段是不可少的)
CSEG??? SEGMENT
ASSUME CS:CSEG,DS:DDD0,SS:STACK
START: MOV AX,DDD0
MOV DS,AX ;MOV DX,AX???
MOV ES,AX ;只要SI,DI都用
MOV SI,0 ;LEA SI,CHAR1
MOV DI,0 ;LEA DI,CHAR2
MOV CX,N
AGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI]
SUB AL,20H MOV CHAR2[DI],AL ; MOV [DI],AL
MOV DL,AL ;不是必须的,但做实验是有用的。
MOV AH,2
INT21H INC SI
INC DI
LOOP AGAIN
MOV AH,4CH
INT 21H ;不是必须的
CSEG ENDS
END START
第二种方法:
DDD0 SEGMENT
CHAR1 DB ‘abcdef’
N EQU $-CHAR1
CHAR2 DB N DUP(0) DDD0??? ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS ;P126(代码段和堆栈段是不可少的)
CSEG??? SEGMENT
ASSUME CS:CSEG,DS:DDD0,SS:STACK
START: MOV AX,DDD0
MOV DS,AX
MOV ES,AX
LEA SI,CHAR1
LEA DI,CHAR2
MOV CX,N
CLD ;不写(隐含)也是0(递增)但不能STD
AGAIN: LODSB ;执行一次,隐含修改SI
SUB AL,32 stosb ;MOV [DI],AL;执行一次, 隐含修改DI nop ;INC DI LOOP AGAIN ;LOOP指令只修改CX,不管SI,DI
MOV AH,4CH
INT 21H ;不是必须的
CSEG ENDS
END START
4-6在BUF地址处起,存放有10
原创力文档

文档评论(0)