第一范文网 - 专业文章范例文档资料分享平台

汇编语言实验报告

来源:用户分享 时间:2025/7/10 15:51:47 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验八 转移指令的原理

1. 分析下面的程序,在运行前思考:这个程序可以正确返回吗? 运行后再思考:为什么是这种结果?

assume cs:codesg

codesg segment

mov ax,4c00h int 21h

start: mov ax,0 ;将ax置0

s: nop ;占一字节,机器码90

nop ;占一字节,机器码90 mov di,offset s ;(di) = s的偏移地址 mov si,offset s2 ;(si) = s2偏移地址

mov ax,cs:[si] ;(ax) = jmp short s1指令对应的机器码EBF6 mov cs:[di],ax ;jmp short s1 覆盖s处两条nop指令

s0: jmp short s ;转移到已经被修改过的s处,执行jmp short s1,由此可 s1: mov ax,0 ;分析得已经返回至mov ax,4c00h处 int 21h mov ax,0 s2: jmp short s1 nop

codesg ends end start

当指令执行到s0:jmp short s时,该指令得到执行,编译器算出的ip位移量为-16(补码F0),(ip)=(ip)+位移量=18H+(-16)=8,cs:8指向s;

当指令执行到s标段jmp命令时,第1个字节中的机器码为EBF6,编译器算出的ip位移量为-10(补码F6),(ip)=(ip)+位移量=AH+(-10)=0,cs:0指向第一条指令。

实验9 根据材料编程

根据相关材料编程:材料详见书上188页

编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 ’welcome to masm!’

assume cs:code,ds:data

data segment

db 'welcome to masm!'

data ends

code segment

start:mov ax,data mov ds,ax mov ax,0b800h mov es,ax mov bx,0 mov si,0 mov cx,16

s0: mov ax,[bx]

mov es:[bx+si+720h],ax mov es:[bx+si+721h],02h inc bx inc si loop s0

mov bx,0 mov cx,16 mov si,160 s1: mov ax,[bx]

mov es:[bx+si+720h],ax mov es:[bx+si+721h],24h inc bx inc si loop s1

mov bx,0 mov cx,16 mov si,320

s2: mov ax,[bx]

mov es:[bx+si+720h],ax mov es:[bx+si+721h],71h inc bx inc si loop s2

mov ax,4c00h int 21h

code ends end start

搜索更多关于: 汇编语言实验报告 的文档
汇编语言实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7etd589he86r0ta505pq_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top