实验五

Posted nicholastwo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验五相关的知识,希望对你有一定的参考价值。

1)

//编译链接,用r查看寄存器内容

技术分享图片

//在ds:0100h处查看定义的内容

技术分享图片

mov ax,stack
     mov ss,ax
        mov sp,16

       //直到这3个指令执行完毕,此时stack数据段被指定为了栈结构,sp指针指向了栈顶,ss发生改变。

技术分享图片

mov ax,data
       mov ds,ax
push ds:[0]
//栈中存储了01 23这2个数据

技术分享图片

  push ds:[2]
//04 56被存入

技术分享图片

//执行完所有程序后再用r查看寄存器的值

技术分享图片

//书上习题

技术分享图片


2)(具体做法和1)相同,就不再详细分析)
技术分享图片
技术分享图片
技术分享图片


3)
技术分享图片

技术分享图片

技术分享图片

技术分享图片


4)

//如果不指名程序的入口,并且使用end替换end start,只有(3)题中程序可以正确的执行但是三道题都可以运行(因为只有它是在内存中可执行代码在最前面)。
       因为如果不指名程序入口,程序会从进内存的第一个单元起开始执行,前二个题中,定义的是数据,但CPU还是将数据当做指令代码执行了。

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

c1 segment   ; 
  db 8 dup(0)
c1 ends     ; 
code segment
start:
        mov ax,a
    mov ds,ax            
 
    mov ax,b
    mov es,ax           
 
    mov bx,0
    mov cx,8            
s:
    mov dl, [bx]        
    add dl, es:[bx]      
    push ds              
    mov ax, c1         
    mov ds, ax         
    mov [bx], dl       
    pop ds              
    inc bx             
    loop s
   
    mov ax,4c00h
    int 21h
code ends
end start

6)

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




以上是关于实验五的主要内容,如果未能解决你的问题,请参考以下文章

实验五

2018-2019-2 20175306实验五《网络编程与安全》实验报告

2018-2019-120165223 实验五 通讯协议设计

学号 2017-2018-2 《程序设计与数据结构》实验五报告

汇编实验五

201555332盛照宗—网络对抗实验1—逆向与bof基础