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

实验五

时间:2018-12-02 10:32:08      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:art   push指令   1.2   应用编程   idt   开始   逆序   star   集成   

1.将下面的程序编译、连接,用debug加载、跟踪,然后回答问题。

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

技术分享图片

技术分享图片

2.将下面的程序编译、连接,用debug加载,跟踪,然后回答问题。

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

技术分享图片

3.将下面的程序编译、连接,用debug加载、跟踪,然后回答问题。

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

技术分享图片

4.如果将1.2.3题中是最后一条伪指令"end start"改为"end"(也就是说,不指明程序的入口),则哪个程序仍然可以正确执行?请说明原因。

第三题程序仍然可以正确执行,不指明程序入口时,程序从头开始执行,而1,2,是以数据段开头,只有3是命令段,能正确运行下去。

5.程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。

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   ; 在集成软件环境中,请将此处的段名称由c→改为c1或其它名称
  db 8 dup(0)
c ends        ; 改的时候要成对一起修改
code segment
start:
       ;?
code ends
end start

技术分享图片

技术分享图片

技术分享图片

技术分享图片

实现前

技术分享图片

实现后

技术分享图片

正确相加了。

6.程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。

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: 
       ;?
code ends
end start

 技术分享图片

技术分享图片

实现前

技术分享图片

实现后

技术分享图片

成功逆序存储到b段中。

总结与体会

一定要熟练运用寄存器,段寄存器,mov,loop,push,pop等等命令。

了解如何在一个程序中使用多个逻辑段进行应用编程 。

 

实验五

标签:art   push指令   1.2   应用编程   idt   开始   逆序   star   集成   

原文地址:https://www.cnblogs.com/byxy/p/10052009.html

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