汇编 编写、调试具有多个段的程序



程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果存到C段中。

(三个程序)

 

程序:两次循环

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,a

       mov ds,ax

       mov ax,b

       mov es,ax

       mov bx,0

       mov cx,8

    s: mov al,[bx]

       add es:[bx],al

       inc bx

       loop s

       mov ax,c

       mov ds,ax

       mov bx,0

       mov cx,8

   s0: mov al,es:[bx]

       mov [bx],al

       inc bx

       loop s0

    mov ax,4c00h

    int 21h

code ends

end start

 

=======================华丽的分割线===============================

 

程序二:一次循环

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,a

       mov ds,ax   ;ds指向a段地址

       mov ax,b

       mov es,ax   ;es指向b段地址

       mov bx,0

       mov cx,8

    s: mov al,[bx]

       add al,es:[bx]

       mov dx,c

       mov ds,dx   ;ds指向c段地址

       mov [bx],al

       mov ax,a

       mov ds,ax   ;重新将ds指向a段(好像此处还能改进)

       inc bx

       loop s

    mov ax,4c00h

    int 21h

code ends

end start

 

=======================华丽的分割线===============================

 

程序三:程序二的改进版

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,a

        mov ds,ax

        mov ax,b

        mov es,ax

        mov ax,c

        mov ss,ax

        mov bx,0

        mov cx,8

s:      mov ax,[bx]

        mov ss:[bx],ax

        mov ax,es:[bx]

        add ss:[bx],ax

        inc bx

        loop s

        mov ax,4c00h

        int 21h

code ends

end start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值