ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

实验2 汇编源程序编写与汇编、调试

2020-11-04 20:03:44  阅读:163  来源: 互联网

标签:汇编 code mov ds asm ax bx 源程序 调试


一、实验目的
1. 理解并掌握汇编源程序组成与结构

2. 掌握汇编语言源程序编写→汇编→链接→调试的工具和方法

3. 理解汇编源程序中地址表示、段寄存器的用法

4. 理解和掌握寄存器间接寻址方式[bx]

5. 通过汇编指令loop的使用理解编程语言中循环的本质

 

二、实验准备
1. 学习/复习第5章使用[bx]和loop实现循环的编程应用示例(教材5.5节,5.8节)

2. 复习第3章「栈」的知识

3. 结合第4章课件,复习完整汇编源程序编写→汇编→连接→运行→调试的方法

4. 复习8086汇编中内存单元地址的表示,以及段寄存器DS, SS, ES, CS的用途

 

三、实验结论

1. 实验任务1

ex1.asm源代码如下:

;ex1.asm
assume cs:code
code segment
        mov ax, 0b810h
        mov ds, ax
        mov byte ptr ds:[0],1
        mov byte ptr ds:[1],1
        mov byte ptr ds:[2],2
        mov byte ptr ds:[3],2
        mov byte ptr ds:[4],3
        mov byte ptr ds:[5],3
        mov byte ptr ds:[6],4
        mov byte ptr ds:[7],4
        mov ah,4ch
        int 21h
code ends
end

 

使用masm、link工具汇编、链接的过程及结果:

 

 

 

 

 

 使用d命令查看程序段前缀PSP所占的256个字节:

 

 用u命令反汇编:

 

 用g命令调试:

 

 

 结果:

 

 

 2.试验任务2

ex2.asm程序如下:

; ex2.asm 
assume cs:code 
code segment
        mov ax, 0b810h 
        mov ds, ax 
        mov bx, 0 
        mov ax, 101H 
        mov cx, 8 
s:      mov [bx], ax 
        add bx, 2 
        add ax, 101H 
        loop s
        mov ah, 4ch 
        int 21h 
code ends 
end

  使用masm、link对ex2.asm进行汇编、链接:

 

 使用u命令对ex2.exe进行反汇编:

 

 对ex2.exe进行调试:

t命令单步调试:

 

 

 

 p命令单步调试:(循环中的命令不单步执行)

 

 把ex2.asm中line9 mov cx, 4 改成 mov cx, 8 ,保存后重新汇编、链接、运行的结果:

 

 结果:

 

 实现了同样的功能与效果;但ex1为顺序结构,ex2为循环结构,效率上前者更好,但使用循环结构更方便书写。

3.实验任务3

ex3.asm的源代码:

; ex3.asm
assume cs:code 
code segment 
        mov ax, 0b800h 
        mov ds, ax 
        mov bx, 07b8h 
        mov ax, 0437H 
        mov cx, 16 
s:      mov [bx], ax 
        add bx, 2 
        loop s
        mov ah, 4ch 
        int 21h 
code ends 
end

 

运行后的结果:

 

 把填充的字数据,从0237H 改成0239H的结果:

 

 

 把填充的字数据,从0237H 改成0437H的结果:

 

 很明显,字数据高位存放的是字符颜色,低位存放的是字符的ASCII码

4.试验任务4

ex4.asm代码如下:

; ex4.asm
assume cs:code 
code segment 
        mov ax, 0
        mov ds, ax 
        mov bx, 200h 
        mov ax, 0
        mov cx, 64 
s:      mov [bx], ax 
        add bx, 1
        add ax,1 
        loop s
        mov ah, 4ch 
        int 21h 
code ends 
end

 

运行结果如下:

 

 5.实验任务5

ex5.asm代码:

; ex4.asm
assume cs:code 
code segment 
        mov ax, cs
        mov ds, ax 
        mov ax,0020h
        mov es,ax
        mov bx, 0
        mov cx, 18h
s:      mov al,[bx]
        mov es:[bx],al
        inc bx
        loop s
        mov ah, 4ch 
        int 21h 
code ends 
end

  运行结果:

 

标签:汇编,code,mov,ds,asm,ax,bx,源程序,调试
来源: https://www.cnblogs.com/wyf-blogs/p/13927843.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有