首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

初级有关问题:关于王爽《汇编语言》的一个习题

2012-03-07 
初级问题:关于王爽《汇编语言》的一个习题刚自学王爽的《汇编语言》,完全不懂,高手请勿见笑。在书的实验5第5题,

初级问题:关于王爽《汇编语言》的一个习题
刚自学王爽的《汇编语言》,完全不懂,高手请勿见笑。在书的实验5   第5   题,题目如下:
编写   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   es,ax
                mov   ax,c
                mov   ds,ax
                mov   bx,0
                mov   cx,8

          s1:mov   ax,es:[bx]
                add   [bx],ax
                add   bx,2     //开始定义的数据是db   ,为什么要add   bx,2   而不是inc   bx??
                loop   s1
                mov   ax,b
                mov   es,ax
                mov   ds,ax
                mov   bx,0
                mov   cx,8
          s2:mov   ax,es:[bx]
                add   [bx],ax
                add   bx,2
                loop   s2
                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, c
mov es, ax

mov dx, 0
mov bx, 0
mov cx, 8

s:
mov dl, [bx]
mov ax, b
mov ds, ax
add dl, [bx]
mov es:[bx], dl;
inc bx;
loop s

mov ax, 4c00h
int 21h

code ends
end start

热点排行