kalong1272002 发表于 2012-4-17 01:03:00

第五實驗 請高手看看是不是這樣子~

本帖最后由 kalong1272002 于 2012-4-17 04:56 编辑

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

csc segment
db 0,0,0,0,0,0,0,0
csc ends

code segment

start:
   
   mov ax, a
   mov ds, ax
   
   mov ax, csc
   mov ss, ax
   mov sp, 16
   mov bx, 0
   mov cx, 4
for1:
   push    ds:
   add bx, 2
loop for1
         
   
   
   mov cx,4   
   mov ax, csc
   mov ss, ax
   mov sp, 16
   mov dx, 0
abc:      

   
         mov bx, 0
         mov ax, b
         mov ds, ax
         add dx,ds:
         add dx,dx
         push dx
       add bx, 2
loop abc



在棧中應該如何進行加法?

NGtailang 发表于 2012-4-17 08:35:27

漏东西了吧lz

莫名其妙 发表于 2012-4-17 08:46:48

可以吧 b段数据 +到C段 然后吧C段数据与a段数据相加结果放在C段不需要利用栈如果你需要逆序相加的话利用栈先把数据都存进去然后在全都pop出來存放到一个段中就逆序了!~
栈中数据没有相加的需要相加需要先pop出來到寄存器中在相加

/调皮_zzqwa 发表于 2012-4-17 10:32:43

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

d segment
db 0,0,0,0,0,0,0,0
d ends

code segment

start:mov ax,a
      mov ds,ax
          mov ax,d
          mov es,ax
          mov bx,0
          mov cx,8
s:    mov dl,ds:
          mov es:,dl
      inc bx
          loop s
          
          mov ax,b
          mov ds,ax
          mov bx,0
          mov cx,8
s1:   mov dl,ds:
          add es:,dl
      inc bx
      loop s1
          
          mov ax,4c00h
          int 21h

code ends
end start

/调皮_zzqwa 发表于 2012-4-17 10:33:46

没有标准答案 编译通过 能得到正确的结果就行了

kalong1272002 发表于 2012-4-17 13:52:21

本帖最后由 kalong1272002 于 2012-4-17 14:04 编辑

想問一下s:    mov dl,ds:
          mov es:,dl
這一個一定要dl嗎?可以用dx?

試過了,dx是不行的 ,請問 dx是否把 0102 都放進去
而用dl 只是把01放進去
多謝高手賜教:Q

页: [1]
查看完整版本: 第五實驗 請高手看看是不是這樣子~