|
发表于 2020-8-30 08:29:42
|
显示全部楼层
本帖最后由 xieglt 于 2020-8-30 08:55 编辑
- assume cs:code
- a segment
- db 1,2,3,4,5,6,7,8
- a ends
- b segment
- db 1,2,3,4,5,6,7,8
- b ends
- c segment
- db 0,0,0,0,0,0,0,0
- c ends
- code segment
- start: mov ax , 076aH ;第六章课后练习第5小题
- mov ds , ax
- mov cx , 8
- mov bx , 0
- mov ax , 0
-
- ;将BX的值保存到BP中,因为下面BX的值被更改了,更好的方法是保存进栈里 PUSH BX
- ;当然,后面的mov bx,bp 相应换成 POP BX
- s:mov bp , bx
- mov al , ds:[bx]
- add bx , 10H
- add al , [bx]
- add bx , 10H
- mov [bx] , ax ;这一句是有问题的,应该写成 mov [bx] , al
- ;恢复bx的值
- mov bx , bp
- inc bx
- loop s
- mov ax,4c00H
- int 21H
- code ends
- end start
- ;另外还也可以这样写,就不需要保存BX的值了
- s:
- mov al , ds:[bx]
- add al , DS:[bx+10H]
- mov ds:[bx+20H] , al
- inc bx
- loop s
复制代码 |
|