计算机组成原理与汇编语言程序设计实验报告.doc
《计算机组成原理与汇编语言程序设计实验报告.doc》由会员分享,可在线阅读,更多相关《计算机组成原理与汇编语言程序设计实验报告.doc(53页珍藏版)》请在三一办公上搜索。
1、学号:221000116计算机组成原理与汇编语言程序设计实验报告姓名:郭海南计算机组成原理与汇编语言程序设计实验报告实验一实验内容:查看CPU和内存,用机器指令和汇编指令编程。实验任务:(1)了解并熟悉WINDOW中DEBUG工具.DEBUG的命令及功能如下:*r【register】命令用于查看、改变寄存器的内容;rr ax*d【不懂为什么叫D】查看内存的内容;d 段地址:偏移地址,段地址可以用CS,DS,SS,ES代替*e 【edit】改写内存的内容e 段地址:偏移地址 依次填入要赋值的数字,每个字节检用空格间隔开*a 【asm,嘿嘿,我自己猜的,】以汇编的形式向内存写入东西a 段地址:偏移
2、地址如果没有指定,一开始是CS:IP,其他的时上一次修改的末尾。*u 【英文不好,不懂,估计是un-ooxx反汇编吧】将内存中的机器码以汇编指令显示出来格式和a命令一样*t 【真不懂】执行CS:IP指向的命令(2)用A、E命令向2000:0内存中写入以下命令,并执行mov ax,1add ax,axjmp 2000:0003计算机组成原理与汇编语言程序设计实验报告实验二实验内容:用机器指令和汇编指令编程实验任务:(1)预备知识:了解DEBUG是如何执行D命令的在E,A,U命令中使用段寄存器 mov ss,ax mov sp,100(2)使用DEBUG执行一段程序-a13B4:0100 mov
3、ax,ffff13B4:0103 mov ds,ax13B4:0105 mov ax,220013B4:0108 mov ss,ax13B4:010A mov sp,010013B4:010D mov ax,013B4:0110 add ax,213B4:0114 mov bx,413B4:0118 add bx,613B4:011C push ax13B4:011D push bx13B4:011E pop ax13B4:011F pop bx13B4:0120 push 413B4:0124 push 613B4:0128计算机组成原理与汇编语言程序设计实验报告实验三实验内容:编程、编译、
4、链接、跟踪实验任务:(1) 编译一个简单的汇编程序assume cs:codecode segmentmov ax,1000hmov ss,axmov sp,0100hmov ax,1001hmov ds,ax;swap(ds:0,ds2)push ds:0push ds:2pop ds:0pop ds:2mov ax,4c00hint 21hcode endsend编译:masm.exe code.txtlink.exe code.objpause运行:debug.exe code.exepause计算机组成原理与汇编语言程序设计实验报告实验四实验内容:【BX】和LOOP的使用实验任务:(1
5、) 编程,向内存0:200 0:23F一次存入数据0 63assume cs:codecode segmentmov ax,0hmov ds,axmov bx,200h;start from 0:200mov cx,64h;loop for 64h timesmov ax,0h;0h to 63hlp:mov bx,axinc ax;add the numberinc bx,;move the addressloop lpmov ax,4c00hint 21hcode endsend(2) 编程,向内存0:200 0:23F一次存入数据0 63,程序中只能9条指令(3) 下面的程序师将“MOV
6、 AX,40CCH之前的指令复制到内存中去,assume cs:codecode segmentmov ax,csmov ds,axmov ax,0020hmov es,axmov bx,0mov cx,16hs:mov al,bxmov es:bx,alinc bxloop smov ax,4c00hint 21hcode endsend-d cs:0 16142D: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 160020:0000 8C
7、 C8 8E D8 B8 20 00 8E-C0 BB 00 00 B9 16 00 8A . .0020:0010 07 26 88 07 43 E2 00 .&.C.计算机组成原理与汇编语言程序设计实验报告实验五实验内容:编写,调试具有多个段的程序实验任务:(4) 编译,调试下面程序assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0acbh,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segments
8、tart:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:0push ds:2pop ds:2pop ds:0mov ax,4c00hint 21hcode endsend加载后:-r csCS 142F:-u142F:0000 B82E14 MOV AX,142E142F:0003 8ED0 MOV SS,AX142F:0005 BC1000 MOV SP,0010142F:0008 B82D14 MOV AX,142D142F:000B 8ED8 MOV DS,AX142F:000D FF360000 PUSH 00001
9、42F:0011 FF360200 PUSH 0002142F:0015 8F060200 POP 0002142F:0019 8F060000 POP 0000142F:001D B8004C MOV AX,4C00程序返回前:-d ds:0 16142D:0000 23 01 56 04 89 07 CB 0A-EF 0D ED 0F BA 0C 87 09 #.V.142D:0010 00 00 2D 14 2D 14 2D .-.-.-r csCS 142F:-r dsDS 142D:-r ssSS 142E(5) 编译,调试下面程序assume cs:code,ds:data,ss:
10、stackdata segmentdw 0123h,0456hdata endsstack segmentdw 0,0stack endscode segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:0push ds:2pop ds:2pop ds:0mov ax,4c00hint 21hcode endsend start加载后:-d ds:0 4142D:0000 23 01 56 04 00 #.V.-r csCS 142F:-r dsDS 142D:-r ssSS 142E:程序返回前:-r ds
11、DS 142D:-r ssSS 142E:-r csCS 142F:(6) 编译,调试下面程序assume cs:code,ds:data,ss:stackcode segmentstart:mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:0push ds:2pop ds:2pop ds:0mov ax,4c00hint 21hcode endsdata segmentdw 0123h,0456hdata endsstack segmentdw 0,0stack endsend start-r csCS 142D:-r dsD
12、S 1430:-r ssSS 1431:-d ds:0 41430:0000 23 01 56 04 00 #.V.(7) 编程,实现将A,B段数据相加,结果保留到C段中assume cs:codea segmentdw 7fffh dup(0fffh)a endsb segmentdw 7fffh dup(0eeeh)b endsc segmentdw 7fffh dup(0h)c endscode segmentstart:mov ax,amov ss,ax;get the a segmentmov ax,bmov es,ax;get the b segmentmov ax,cmov ds
13、,ax;get the c segmentmov cx,0fff0h;add the a and b ,length is the whole segmentmov bx,0h;from 0mov ax,0h;init the axmov dx,0h;init the dxlp:mov dl,ss:bx;get the byte from a segmentadd ax,dxmov dl,es:bx;get the byte from b segmentadd ax,dxmov ds:bx,al;save the answermov al,ah;shift the axmov ah,0;ini
14、t the ahinc bx;add bxloop lpadd ax,4c00hint 21hcode endsend start计算机组成原理与汇编语言程序设计实验报告实验六实验内容:更灵活定位内存地址实验任务:(8) 实验课程的程序大写转小写assume cs:code,ds:datedata segmentdb unIXdb foRKdata endscode segmentstart:mov ax,datamov ds,axmov bx,0hmov cx,8hlp:mov al,bxor al,20hmov bx,alinc bxloop lpmov ax,4c00hint 21hco
15、de endsend start使用BX+IDATA,SI、DI等定位assume cs:code,ds:datadata segmentdb welcome to masm!db .data endscode segmentstart:mov ax,datamov ds,axmov di,10hmov si,0hmov cx,8hlp:mov ax,simov di,axadd si,2add di,2loop lpmov ax,4c00hint 21hcode endsend startassume cs:code,ds:datadata segmentdb welcome to masm
16、!db .data endscode segmentstart:mov ax,datamov ds,axmov si,0hmov cx,8hlp:mov ax,simov 10hsi,axadd si,2loop lpmov ax,4c00hint 21hcode endsend start编程实现将每个单词前4个字母改为大写字母assume cs:code,ds:data,ss:stackstack segmentdw 20h dup(0h)stack endsdata segmentdb 1. display db 2. Brows db 3. replace db 4. modify d
17、ata endscode segmentstart:mov ax,datamov ds,axmov ax,stackmov ss,axmov sp,10hmov bx,0hmov cx,4lp1:push cxmov cx,4mov si,3lp2:mov al,bx+siand al,11011111bmov bx+si,alinc siloop lp2pop cxadd bx,10hloop lp1mov ax,4c00hint 21hcode endsend start计算机组成原理与汇编语言程序设计实验报告实验七实验内容:寻址方式在结构化的数据访问中的应用实验任务:assume cs:
18、code,ds:datadata segmentdb 1970,1971,1972,1973,1974db 1975,1976,1977,1978,1979db 1980,1981,1982,1983,1984db 1985,1986,1988,1988,1989db 1990;21个年份dd 23,2134,343342,4334235,3dd 2332,23414,33432,43235,32dd 233,43214,3432,43235,33dd 23433,2144,3432,43235,323244,333342;21年份的公司收入 DWORD类型dw 2,3,6,778,711dw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 汇编语言 程序设计 实验 报告
链接地址:https://www.31ppt.com/p-4863891.html