汇编语言(第二版).doc

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

实验一 2、实验任务 (1)使用debug,将上面的程序段写入到内存,逐条执行,观察每条指令执行后,CPU中的相关寄存器中的变化。 机器码 汇编指令 用E命令和A命令以两种方式将指令写入到内存。注意用T命令执行时,CS:IP的指向。 用T命令执行如下: 用汇编指令将指令写入内存: 用T命令执行如下: (2)将下面3条指令写入从2000:0开始的内存单元中,利用这3台哦指令计算2的8次方。 汇编指令如下: Mov ax,1 Add ax,ax Jump 2000:3 在debug中如下图: 用T命令执行8次后得到2的八次方:如图: (3)查看内存中的内存:    PC机的主板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。 如图是:PC机主板的ROM中的写有生产日期为01/24/11截图,、 试图改写该段内存的数据,由图可知改写出错,不???改写,因为它为只读寄存器。    (4)向内存从B8100H开始的单元中填写数据,如: -e B810:0000 01 01 02 02 03 03 04 04 写入01时屏幕显现为一个笑脸,再输入01笑脸变为蓝色, 写入02时又出现为一个实心的白色笑脸,在输入02变为绿色, 写入03时又出现了一个白色的“心”,在输入03时换色啦! 探寻原理: 第一次输入时为数字显现的是数字对应的Ask码, 第二个是表示颜色的 实验二 2、实验任务: (!)使用debug,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。 Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax = 58EAH Add ax,[2] ;ax=5CCAH Mov bx,[4] :bx = 30f0H Add bx,[6] ;bx = 6021H Push ax ;sp = 00feH, ;sp = 00feH,修改的内存单元的地址是2200:00fe 内容为5ccaH Push bx :sp = oofch, ;sp = 00fcH,修改的内存单元的地址是2200:00fe 内容为6021H Pop ax ;sp = 00feH; ax = 6021H Pop bx ;sp = 0100; bx = 5ccaH Push [4] ;sp = 00feH,修改的内存单元的地址是2200:00feH 内容为30f0H Push [6] ;sp = 00fcH,修改的内存单元的地址是2200:00fcH 内容为2f31H (2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生变化? 不知道 实验三 编程、编译、连接、跟踪 (1)将下面程序保存为t1.asm文件,将其生成可执行文件t1.exe. Assume cs:codesg Codesg 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 21h Codesg ends end 实验四 [bx]和loop的使用 编程,想内存2:200~0:23F依次传送数据0~63(3FH)。 代码如下: Assume cs:code code segment mov ax,2000h mov ds,ax mov bx,0 s: mov [bx], inc bx loop s mov ax,4c00h int 21h code ends end 编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9条指令,9条指令中包括“mov ax,4c00h “和”inc 21h”. 下面的程序功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试、跟踪运行结果。 Assume cs:code Code segment Mov ax. Mov ds,ax Mov ax,0020h Mov ds,ax Mov bx,0 Mov cx, S:mov al,[bx] Mov es:[bx].al Inc bx Loop s Mov ax ,4c00h Int 21h Code ends End 复制的是什么?从哪里到哪里? 复制到是什么?用多少个字节?你如何知道要复制到字节的数量?

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档