- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)