鱼C论坛

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

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

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

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

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

x
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
    ;源数据地址

    add ax,1
    mov ss,ax
    mov ax,16
    add sp,ax
    ; 构造栈

    mov ax,b
    mov es,ax
    ;目标数据地址

    mov bx,0
    mov cx,8

sl: push ds:[bx]
    inc bx
    inc bx
    loop sl
    ; 存入栈

    mov bx,0
    mov cx,8

ddl:pop es:[bx]
    inc bx
    inc bx
    loop ddl
    ; 出栈

    mov ax,4c00h
    int 21h

code ends
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 | 显示全部楼层
assume cs:code
a segment
    dw 1,2,3,4,5,6,7,8,9,0ah
a ends
b segment
    db 0,0,0,0,0,0,0,0
b ends
code segment
    start:
    mov ax,cs
    mov ss,ax
    mov sp,16
    
    mov ax,a
    mov ds,ax
    
    mov ax,b
    mov es,ax
    
    mov cx,8
    mov bx,0
  
  s:push ds:[bx]
    mov dx,ds:[bx]
    mov es:[bx],dx
    add bx,2
    loop s
       
    code ends 
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-11-5 20:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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