汇编网首页登录博客注册
zhangzl419的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2009-08-07 19:44] 第五章和第六章检测题和实验

第五章实验五

(1)和(2)的程序:
assume        cs:code
code         segment
        mov ax,0020h
        mov ds,ax
        mov bx,0
        mov cx,40h
s:        mov [bx],bx
        inc bx
        loop s
        mov ax,4c00h
        int 21h
code         ends
end

(3)两处要填的分别是:
                CS
        0017H


检测点6.1

(1)应填:
                    mov  cs:[bx],ax
(2)应填:
                    cs
          24H
          pop  cs:[bx]


第六章实验

(1)
<1>CPU执行程序,程序返回前,data段中的数据为多少?
 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
<2>CPU执行程序,程序返回前,cs=145AH 、ss=1459H  、ds=1458H 
<3>设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1

(2)
<1>CPU执行程序,程序返回前,data段中的数据为多少?
 0123h,0456h
<2>CPU执行程序,程序返回前,cs=145AH 、ss=1459H  、ds=1458H 
<3>设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1
<4>对于如下定义的程序段:
name   segment
        ....
name   ends
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为N

(3)
<1>CPU执行程序,程序返回前,data段中的数据为多少?
 0123h,0456h
<2>CPU执行程序,程序返回前,cs=1458H 、ss=145CH  、ds=145BH 
<3>设程序加载后,code段的段地址为X,则data段的段地址为X+2,stack段的段地址为X+3

(4)
如果将(1)(2)(3)中的最后提调伪指令改为end,则只有(3)能正确执行。
因为(3)中代码段一开始就是指令,而不是数据,在数据定义之前又可以从程序返回操作系统,因此不会产生(1)(2)中将数据当成指令来执行的错误。

(5)需要补充的程序:

code        segment

start:        mov ax,a
        mov ds,ax
        mov bx,0

        mov ax,c
        mov es,ax

        mov ax,b
        mov ss,ax
        
        mov cx,8

s:         mov al,[bx]
        add  al,ss:[bx]
        mov es:[bx],al
        inc bx
        loop s

        mov ax,4c00h
        int 21h
code        ends        

(6)需要补充的程序:

code         segment
        mov ax,b
        mov ss,ax
        mov sp,10h
        
        mov ax,a
        mov ds,ax
        mov bx,0
        
        mov cx,8h
        
s:        push [bx]
        add bx,2
        loop s
        
        mov ax,4c00h
        int 21h
code        ends
评论次数(2)  |  浏览次数(684)  |  类型(汇编作业) |  收藏此文  | 

[  younggay   发表于  2009-08-18 09:27  ]

实验五的第1、2题中,“s: mov [bx],bx 
”这条指令应该是“s: mov [bx],bl”,博主仔细体会两者操作内存过程的不同。

[  younggay   发表于  2009-08-18 09:29  ]

如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为N 
================
这个回答显然跟你前面两个题目就有冲突,是不对的。
提示:
1.段最小为16字节
2.N为16整数倍的时候与N不为16整数倍的时候是不一样的。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码