汇编语言与程序设计 实验四

实验内容

1. 综合使用loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续16个*字单元*重复填充字数据 0403H。

下面是具体的代码

assume cs:code
code segment
    mov ax,0b800h
    mov ds,ax
    mov ax,0403h
    mov bx,07b8h

    mov cx,10h
s: mov [bx],ax
    inc bx
    inc bx
    loop s

    mov ax,4c00h
    int 21h
cod ends
end


清屏后执行.exe文件,得到如下结果


> 将源代码程序中字数据 0403H-> 修改为0441H,再次运行。

可见原来的爱心变成了A

2. 综合使用loop,[bx],编写完整汇编源程序,实现向内存 0:200~0:23f 依次传送数据0~63(3FH)。

代码如下

assume cs:code
code segment
    mov ax,0
    mov ds,ax
    mov bx,0200h
    mov al,0
    
    mov cx,40h
s: mov [bx],al
    inc bx
    inc al
    loop s

    mov ax,4c00h
    int 21h
code ends
end

进行编译、链接无误以后,使用debug 观察

**从实验结果可以验证题目所要求


3. 下面的程序的功能是将“mov ax,4c00h   ”之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果

下图为已补全结果

assume cs:code
code segment
    mov ax,cs
    mov ds,ax
    mov ax,0020h
    mov es,ax
    mov bx,0
    mov cx,17h
  s:mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
code ends
end

进行Debug



**可见,第二个字节也被复制过去了。反汇编查看复制的内容,发现与源代码相同


实验总结与体会

  • 首先这次实验用的博客园自带的 Markdown 作为编辑器,初次使用,而且没有地方预览,所以排版不一定好看、正确,在此说明

  • 这次实验相对来说还是用的前几次的知识,加以应用。对汇编的了解更加深一步了。;
    end
    --------

猜你喜欢

转载自www.cnblogs.com/o-light-years/p/9986012.html
今日推荐