学号: 221000116计算机组成原理与汇编语言编程实验报告姓名: wjdsb
PAGE 53第53页合计NUMPAGES 53第53页2011年11月24日
计算机组成原理与汇编语言编程实验报告
实验1
实验内容:查看CPU和内存,用机器指令和汇编指令编程。
实验任务:
)1)了解和熟悉窗口调试工具.调试的命令和功能
*r【register】指令用于显示、变更寄存器的内容;
r
r ax
*d【不知道为什么叫d】查看内存内容
d“段地址”]:[“偏移地址”和段地址可用CS、DS、SS和ES代替
*e 【edit】改写存储器的内容
e [段地址]:[偏移地址] {按顺序填写要分配的数字,按字节用空格分隔}
*a 【asm,自己猜的,】以汇编的形式向内存中写入东西
a如果未指定“段地址”]:[“偏移地址”,则最初为CS:IP,否则为上次修改的末尾。
*u【英语不好不懂,大概是un-ooxx反汇编吧】用汇编指令显示内存中的机器码
格式与a命令相同
*t【我不知道】执行CS:IP指向的指令
)2) a、用e命令向2000:0内存中写入并执行以下命令
mov ax,1
add ax,ax
jmp 2000:0003
计算机组成原理与汇编语言编程实验报告
实验2
实验内容:用机器指令和汇编指令编程
实验任务:
(1)预备知识:
了解调试程序如何执行d命令
在e、a、u指令中使用段寄存器
mov ss,ax mov sp,100
)2)使用调试程序运行
-a
13B4:0100 mov ax,ffff
13B4:0103 mov ds,ax
13B4:0105 mov ax,2200
13B4:0108 mov ss,ax
13B4:010A mov sp,0100
13B4:010D mov ax,[0]
13B4:0110 add ax,[2]
13B4:0114 mov bx,[4]
13B4:0118 add bx,[6]
13B4:011C push ax
13B4:011D push bx
13B4:011E pop ax
13B4:011F pop bx
13B4:0120 push [4]
13B4:0124 push [6]
13B4:0128
计算机组成原理与汇编语言编程实验报告
实验3
实验内容:编程、编译、链接、跟踪
实验任务:
编译简单汇编程序
assume cs :代码
代码段
mov ax,1000h
mov ss,ax
mov sp,0100h
mov ax,1001h
mov ds,ax
; SWAP(ds:[0],ds[2] ) )。
push ds:[0]
push ds:[2]
pop ds:[0]
pop ds:[2]
mov ax,4c00h
int 21h
代码结尾
结束
编译:
masm.exe code.txt
link.exe code.obj
pause
执行:
debug.exe code.exe
pause
计算机组成原理与汇编语言编程实验报告
实验4
实验内容【BX】和LOOP的使用
实验任务:
编程,在存储器0:200 ~0:23F中一次保存数据0 ~63
assume cs :代码
代码段
mov ax,0h
mov ds,ax
mov bx,200h; 开始从0:200
mov cx,64h; loop for 64h times
mov ax,0h; 0h to 63h
lp:mov [bx],ax
inc ax; add the number
inc bx; 移动地址
loop lp
mov ax,4c00h
int 21h
代码结尾
结束
编程在存储器0:200 ~0:23F中一次存储数据0 ~63,程序中只能存储9个指令
下一个程序员将“MOV AX,40CCH‘”前的指令复制到存储器中,
assume cs :代码
代码段
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,16h
s:mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
代码结尾
结束
-d cs:0 16
142 d 336000008 cc 88 ed8b 820008 e-c0bb 0000 b 916008 a
142D:0010 07 26