码迷,mamicode.com
首页 > 其他好文 > 详细

实验五

时间:2018-12-02 21:11:54      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:idt   命令   编写   查看   star   alt   ring   图片   deb   

任务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
       
        push ds:[0]
        push ds:[2]
        pop ds:[2]
        pop ds:[0]
       
        mov ax,4c00h
        int 21h

code ends
end start

1.在debug下编译,连接,用r命令查看cx的值

技术分享图片

技术分享图片

2.用 d 命令查看数据段的值

技术分享图片

 

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
       
        push ds:[0]
        push ds:[2]
        pop ds:[2]
        pop ds:[0]
       
        mov ax,4c00h
        int 21h

code ends
end start

1.在debug下编译,连接

技术分享图片

技术分享图片

若代码段的段地址为 x,则数据段的段地址为 x?2,栈段的段地址为 x?1。

 

任务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
       
        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

1.编译连接,debug下运行

技术分享图片

代码段的段地址为 x,则数据段的段地址为 x+3,栈段的段地址为 x+4

任务4.

将以上三题中最后一条伪指令“end start"改为”end",则哪个程序仍然可以正确执行?请说明原因。

第三个程序可以正确执行,因为代码段放在了最前面,将最后一条伪指令"end start"改为"end",实验三没有影响。

任务5.

1.编译连接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 8 dup(0)
c ends    
code segment
start:   mov ax, a
         mov ds, ax

         mov ax, b
         mov es, ax

         mov cx, 8
         mov bx, 0

s:       mov dl, ds:[bx]     ; 
         add dl, es:[bx]
         mov ax, c
         push ds             ; 
         mov ds, ax
         mov [bx], dl
         pop ds
         inc bx
         loop s

         mov ax, 4c00h
         int 21h
code ends
end start

技术分享图片

技术分享图片

 

任务6.

1.编写,编译

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 8 dup(0)
b ends

code segment
start:  mov ax, a
        mov ds, ax

        mov ax, b
        mov ss, ax       ; 
        mov sp, 16

        mov bx, 0
        mov cx, 8

s:      push ds:[bx]
        add bx, 2
        loop s

        mov ax, 4c00h
        int 21h
code ends
end start

技术分享图片

技术分享图片

 

实验五

标签:idt   命令   编写   查看   star   alt   ring   图片   deb   

原文地址:https://www.cnblogs.com/nzy699/p/10055162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!