汇编语言实报告.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言实报告

实验1 查看CPU和内存,用机器指令和汇编指令编程 1.预备知识:Debug的使用 2.实验任务(第45页) (1)已跟踪执行 (2) (3)通过DEBUG中的D命令查看到主板的生产日期[以月、日、年,分隔符为/的格式]存储在内存ffff:0005~ffff:000C(共8个字节单元中)处。此生产日期不能被改变,因为其具有‘只读’属性。 通过向内存中的显存写入数据,使计算机根据写入的数据进行ASCII转换,并将转换后且可打印的字符输出到屏幕上。 实验2 用机器指令和汇编指令编程 预备知识:Debug的使用 2.实验任务(第71页) (1)使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。 从第一空开始依次如下: ax=5BEA ax=5CCA bx=30F0 bx=6022 sp=FE 220FE 5CCA sp=FC 220FC 6022 sp=FE 6022 sp=100H 5CCA sp=FE 220FE 30F0 sp=FC 220FC 2F32 说明:此题可能因机子软、硬件环境不同而导致答案不一致! (2)仔细观察图3.19的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变? 答:因为用T指令进行调试时,会产生中断。而为了保护现场,CPU则先将标志寄存器进栈、再把当前CS的值进栈,最后将IP的值进栈。 实验三 汇编语言程序的调试与运行 将下面的程序保存为t1.asm文件,生成可执行文件t1.exe; assume cs:codesg codesg segment mov ax,2000h mov ss,ax mov sp,0 add sp,4 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00h int 21h codesg ends end 用Debug跟踪t1.exe的执行过程,写出每一步执行后相关寄存器中的内容 PSP的前两个字节是CD 20,用Debug加载t1.exe,查看PSP的内容 程序段前缀PSP格式: 偏移 字节数 说 明 0000 02 中断20H 0002 02 以节计算的内存大小(利用这个可看出是否感染引导型病毒) 0004 01 保留 0005 05 至DOS的长调用 000A 02 INT 22H 入口 IP 000C 02 INT 22H 入口 CS 000E 02 INT 23H 入口 IP 0010 02 INT 23H 入口 CS 0012 02 INT 24H 入口 IP 0014 02 INT 24H 入口 CS 0016 02 父进程的PSP段值(可测知是否被跟踪) 0018 14 存放20个SOFT号 002C 02 环境块段地址(从中可获知执行的程序名) 002E 04 存放用户栈地址指针 0032 1E 保留 0050 03 DOS调用 ( INT 21H / RETF ) 0053 02 保留 0055 07 扩展的FCB头 005C 10 格式化的FCB1 006C 10 格式化的FCB2 007C 04 保留 0080 80 命令行参数长度(不包含总为最后的0D)及参数 也是程序运行期间缺省的DTA 实验四 [bx]和loop指令的联合使用 编程:向内存0:200~0:23F依次传送数据0~63 assume cs:code code segment mov ax,0020h mov ds,ax mov bx,0 mov dl,0 mov cx,40h s: mov [bx],dl inc bx inc dl loop s mov ax,4c00h int 21h code ends end 编程:向内存0:200~0:23F依次传送数据0~63,程序中只能使用9条指令(包括程序的2条返回语句) assume cs:code code segment mov ax,0020h mov ds,ax mov bl,0 mov cx,64 s: mov [bx],bl inc bl loop s mov ax,4c00h int 21h code ends end 下面程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。 assume cs:code code segment mov ax,code //或者是cs mov ds,ax mov ax,0020h

文档评论(0)

mhk8089 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档