鱼C论坛

 找回密码
 立即注册
查看: 3168|回复: 6

[汇编作业] 实验5(6)

[复制链接]
发表于 2018-4-1 21:43:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. assume cs:code

  2. a segment
  3.     dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
  4. a ends

  5. b segment
  6.     dw 0,0,0,0,0,0,0,0
  7. b ends

  8. code segment

  9. start:
  10.     mov ax,a
  11.     mov ds,ax
  12.     ;源数据地址

  13.     add ax,1
  14.     mov ss,ax
  15.     mov ax,16
  16.     add sp,ax
  17.     ; 构造栈

  18.     mov ax,b
  19.     mov es,ax
  20.     ;目标数据地址

  21.     mov bx,0
  22.     mov cx,8

  23. sl: push ds:[bx]
  24.     inc bx
  25.     inc bx
  26.     loop sl
  27.     ; 存入栈

  28.     mov bx,0
  29.     mov cx,8

  30. ddl:pop es:[bx]
  31.     inc bx
  32.     inc bx
  33.     loop ddl
  34.     ; 出栈

  35.     mov ax,4c00h
  36.     int 21h

  37. code ends
  38. end start

复制代码

调试半天才搞定,一点注意
sp的计算要从0计算,16个字节数据最后一个数据是第15字节所以要设sp=16
有个疑问
给ss sp赋值后 栈中数据会改变,不是不应该改变么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-21 00:29:35 | 显示全部楼层
mov ax,a
mov ds,ax
mov ax,b
mov es,ax

mov bx,0
mov cx,8
mov dx,8
s:    mov al,[bx]
       push bx
       mov bx,dx
       mov es:[bx],al
       pop bx
       sub dx,1
       inc bx
       loop s

这个不知道怎么样(-o-)/

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-5 20:37:45 | 显示全部楼层
你好,我问一下:
add ax,1
mov ss,ax
这步是干什么的,一定要mov ss,ax+1吗,这个ax+1是一定的还是有什么范围
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-19 13:13:27 | 显示全部楼层
  1. assume cs:code
  2. a segment
  3.     dw 1,2,3,4,5,6,7,8,9,0ah
  4. a ends
  5. b segment
  6.     db 0,0,0,0,0,0,0,0
  7. b ends
  8. code segment
  9.     start:
  10.     mov ax,cs
  11.     mov ss,ax
  12.     mov sp,16
  13.    
  14.     mov ax,a
  15.     mov ds,ax
  16.    
  17.     mov ax,b
  18.     mov es,ax
  19.    
  20.     mov cx,8
  21.     mov bx,0
  22.   
  23.   s:push ds:[bx]
  24.     mov dx,ds:[bx]
  25.     mov es:[bx],dx
  26.     add bx,2
  27.     loop s
  28.       
  29.     code ends
  30. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-24 17:03:52 | 显示全部楼层
assume cs:code

a segment
        dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends

b segment
        dw 0,0,0,0,0,0,0,0
b ends

code segment

start:
                mov ax,a
                mov ds,ax

                mov ax,b
                mov ss,ax
                mov sp,10h

                mov bx,0
                mov cx,8

        s:        mov ax,[bx]
                push ax

                add bx,2

                loop s

code ends

end start


这个对不对 各位帮忙看看不 跪谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-6 21:54:04 | 显示全部楼层
sp从0计算到第15个字节,怎么不是sp=10  (sp是十六进制吧)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 21:56:02 | 显示全部楼层
assume cs:code

a segment
  dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends

b segment
  dw 0,0,0,0,0,0,0,0
b ends

code segment

start:mov ax, a
      mov ds, ax
      
      mov ax, b
      mov ss, ax
      mov sp,10h
      
      mov cx, 8
    s:push [bx]
      add bx,2
      loop s
      
      mov ax, 4c00h
      int 21h

code ends

end start
我是这么写的,调试结果是对的。不知道大家为什么写的那么复杂。是不是我理解错了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 17:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表