计算机组成原理与汇编语言程序设计实验报告
计算机组成原理与汇编语言程序设计实验报告
实验一
实验内容:查看CPU和内存,用机器指令和汇编指令编程。
实验任务:
(1)了解并熟悉WINDOW中DEBUG工具.DEBUG的命令及功能如下:
*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
计算机组成原理与汇编语言程序设计实验报告
实验二
实验内容:用机器指令和汇编指令编程
实验任务:
(1)预备知识:
了解DEBUG是如何执行D命令的
在E,A,U命令中使用段寄存器
mov ss,ax mov sp,100
(2)使用DEBUG执行一段程序
-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
计算机组成原理与汇编语言程序设计实验报告
实验三
实验内容:编程、编译、链接、跟踪
实验任务:
编译一个简单的汇编程序
assume cs:code
code segment
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
code ends
end
编译:
masm.exe code.txt
link.exe code.obj
pause
运行:
debug.exe code.exe
pause
计算机组成原理与汇编语言程序设计实验报告
实验四
实验内容:【BX】和LOOP的使用
实验任务:
编程,向内存0:200 ~0:23F一次存入数据0 ~63
assume cs:code
code segment
mov ax,0h
mov ds,ax
mov bx,200h;start from 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,;move the address
loop lp
mov ax,4c00h
int 21h
code ends
end
编程,向内存0:200 ~0:23F一次存入数据0 ~63,程序中只能9条指令
下面的程序师将“MOV AX,40CCH‘之前的指令复制到内存中去,
assume cs:code
code segment
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
code ends
end
-d cs:0 16
142D:0000 8C C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 16 00 8A ..... ..........
142D:0010 07 26 88 07 43 E2 F8 .&..C..
-d es:0 16
0020: