汇编实验

上传人:suns****4568 文档编号:90700925 上传时间:2019-06-15 格式:DOC 页数:44 大小:1.96MB
返回 下载 相关 举报
汇编实验_第1页
第1页 / 共44页
汇编实验_第2页
第2页 / 共44页
汇编实验_第3页
第3页 / 共44页
汇编实验_第4页
第4页 / 共44页
汇编实验_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《汇编实验》由会员分享,可在线阅读,更多相关《汇编实验(44页珍藏版)》请在金锄头文库上搜索。

1、汇编语言实验报告学 号:姓 名:提交日期:成 绩:汇编语言 实验报告【实验编号】1 【实验名称】用机器语言和汇编语言编程【实验内容】 (1).使用Debug,将上面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中的内容变化。 机器码 汇编指令 B8 20 4e mov ax,4e20h 05 16 14 add ax,1416h Bb 00 20 mov bx,2000h 01 d8 add ax,bx 89 c3 mov bx,ax 01 d8 add ax,bx B8 1a 00 mov ax,001ah Bb 26 00 mov bx,0026h 00 d8 add

2、al,bl 00 dc add ah,bl 00 c7 add bh,al B4 00 mov ah,0 00 d8 add al,bl 04 9c add al,9ch (2).将下面的3条指令写入从2000:0开始的内存单元中,利用这三条指令计算2的8次方。 mov ax,1 add ax,ax jmp 2000:0003 (3).查看内存中的内容 PC机主板上的ROM中写有一个生产日期,在内存fff00hffffffh的某几个单元中,请找到这个生产日期并试图改变它。 试图将09/07/10修改为12/12/12 因为为之都寄存器,所以只能读而不能修改。(4).向内存从B8100开始的单元

3、中填写数据,如: -e b810:0000 01 01 02 02 03 03 04 04 填写不同的数据,观察现象 现象:不同的数据所呈现出的图形是不一样的,但其出现在屏幕上的位置是没变的。改变填写的地址,观察产生的现象 现象:改变所存储的位置,所产生的图像是不变的,但其出现在屏幕上的位置发生了变化。 【实验编号】2【实验名称】汇编语言程序的编写过程【实验目的】1.掌握汇编语言程序的编写、编译、链接、执行过程;2.了解程序分段的目的和意义;【实验内容】(1).使用debug,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。 mov ax,ffff mov ds,ax mo

4、v ax,2200 mov ss,ax mov sp,0100 mov ax,0 ;ax=5BEA add ax,2 ;ax=5CCA mov bx,4 ;bx=30F0 mov bx,6 ;bx=6029 push ax ;sp=00FE;修改的内存单元的地址是2200:FE和2200:FF内容为5CCA push bx ;sp=00FC;修改的内存单元的地址是2200:FC和2200:FD内容为6029 pop ax ;sp=00FE;ax=6029 pop bx ;sp=0100;bx=5CC0 push 4 ;sp=00FE;修改的内存单元的地址是2200:FE和2200:FF内容为3

5、0F0 push 6 ;sp=00FC;修改的内存单元的地址是2200:FC和2200:FD内容为2F39 【实验编号】3【实验名称】编程、编译、连接、跟踪【实验内容】 (1).将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe assume cs:codesgcodesg segment mov ax,2000h mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00h int 21hcodesg endsend 生成exe文件 (2).用debug跟踪t1.ex

6、e的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。 (3).PSP的开头两个字节是CD 20,用debug加载t1.exe,查看psp的内容。 【实验编号】4【实验名称】bx和loop的使用【实验内容】(1).编程,向内存0:2000:23f依次传送数据063(3fh)。 程序如下: assume cs:codesgcodesg segment mov ax,0 mov ds,ax mov bx,0200h mov ax,0 mov cx,64 s: mov bx,ax inc bx inc ax loop s mov ax,4c00h int 21hcodesg ends en

7、d 运行结果如下: (2)编程,向内存0:2000:23f依次传送数据063(3fh),程序中只能使用九条指令,其中包括“mov ax,4c00h”和“int 21h” 程序如下: assume cs:codesgcodesg segment mov ax,20h mov ds,ax mov bx,0 mov cx,64 s: mov bx,bl inc bx loop s mov ax,4c00h int 21hcodesg ends end 运行结果如下: (3).下面程序的功能是将“mov ax,4c00”之前的指令复制到内存0:200处,补全程序。 上机调试,跟踪运行结果。 assum

8、e cs:codecode 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 21hcode ends end 运行结果如下: 【实验编号】5【实验名称】编写、调试具有多个段的程序【实验内容】(1) 将下面程序编译连接,用debug加载、跟踪,然后回答问题。assume cs:code,ds:data,ss:stackdata segment dw 0123h,0456h,0789h,0ab

9、ch,0defh,0fedh,0cbah,0987data endsstack segment dw 0,0,0,0,0,0,0,0stack endscode segmentstart: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 21hcode ends endCPU执行程序,程序返回前,data段中的数据 不变 。 CPU执行程序,程序返回前,CS= 0C88H ,SS= 0C87H ,DS= 0C86H 。设程序加载后,CODE段的段地址为X,则DATA段的段地址为 X-2 ,STACK段的段地址为 X-1 。运行结果如下: (2) 将下面的程序编译连接,用Debug加载、跟踪,然后回答问题。 程序如下:assume cs:code,ds:d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号