鱼C论坛

 找回密码
 立即注册
查看: 2940|回复: 0

[学习笔记] 实验五

[复制链接]
发表于 2017-9-8 22:45:23 | 显示全部楼层 |阅读模式

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

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

x
(1)代码:
assume cs : code, ds : data, ss : stack 

data segment 

        dw 0123H, 0456H, 0789h, 0abcH, 0defH, 0fedH, 0cbaH, 0987H
        
data ends 

stack segment 

        dw 0, 0, 0, 0, 0, 0, 0, 0
        
stack ends 

code segment 

start : mov ax, stack 
                mov ss, ax 
                mov sp, 16 
                
                mov ax, data 
                mov ds, ax 
                
                mov bx, 0 
                
                push ds: [0]
                push ds: [2]
                pop ds: [2]
                pop ds: [0]
                
                mov ax, 4c00H
                int 21H 
        
code ends 
end start 

data段中的数据不会改变
cs、ss、ds中的内容视不同的电脑不同的操作系统而不同
如果code段的地址为X,则data段中的地址为X-2, stack段中的地址为X-1。

(2)代码:
assume cs : code, ds : data, ss : stack 

data segment 

        dw 0123H, 0456H
        
data ends 

stack segment 

        dw 0, 0
        
stack ends 

code segment 

start : mov ax, stack 
                mov ss, ax 
                mov sp, 16 
                
                mov ax, data 
                mov ds, ax 
                
                mov bx, 0 
                
                push ds: [0]
                push ds: [2]
                pop ds: [2]
                pop ds: [0]
                
                mov ax, 4c00H
                int 21H 
        
code ends 
end start 

前三个问题跟(1)的答案一样
第四个问题的答案是16 * (N / 16 + 1),如果一个段中的数据不同16个字节他/它会补完16个字节

(3)代码:
assume cs : code, ds : data, ss : stack 


code segment 

start : mov ax, stack 
                mov ss, ax 
                mov sp, 16 
                
                mov ax, data 
                mov ds, ax 
                
                mov bx, 0 
                
                push ds: [0]
                push ds: [2]
                pop ds: [2]
                pop ds: [0]
                
                mov ax, 4c00H
                int 21H 
                

code ends 

data segment 

        dw 0123H, 0456H
        
data ends 

stack segment 

        dw 0, 0
        
stack ends 

end start 

data段中的数据不会改变
cs、ss、ds中的内容视不同的电脑不同的操作系统而不同
如果code段中的地址为X,则data段中的段地址为X + 3, stack段的段地址为X + 4

(4)   第(3)程序可以正常执行,因为编译器是从上而下来编译的

(5)代码:
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 bx, 0 
                mov cx, 8 
                
        s : mov al, [bx]
                add es:[bx], al 
                inc bx 
                
                loop s 
                
                mov ax, b
                mov ds, ax 
                
                mov al, 0
                mov bx, 0 
                mov cx, 8
        s0: mov al, [bx]
                add es:[bx], al 
                inc bx 
                
                loop s0
                
                mov ax, 4c00H
                int 21H 
                
code ends 
end start 

实现了将a和b段的数据相加到c段中

(6)代码:
assume cs : code 

a segment 

        dw 1, 2, 3, 4, 5, 6, 7, 8
        
a ends 

b segment 

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

code segment 

start : mov ax, b 
                mov ss, ax 
                mov sp, 16 
                
                mov ax, a 
                mov ds, ax 
                
                mov bx, 0 
                mov cx, 8 
                
        s : push [bx]
                add bx, 2
                
                loop s 
                
                mov ax, 4c00H
                int 21H
                
code ends 
end start 

实现将a段的数据逆序放在b段中。

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 03:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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