汇编作业二.

上传人:我** 文档编号:116214486 上传时间:2019-11-16 格式:DOCX 页数:17 大小:802.13KB
返回 下载 相关 举报
汇编作业二._第1页
第1页 / 共17页
汇编作业二._第2页
第2页 / 共17页
汇编作业二._第3页
第3页 / 共17页
汇编作业二._第4页
第4页 / 共17页
汇编作业二._第5页
第5页 / 共17页
点击查看更多>>
资源描述

《汇编作业二.》由会员分享,可在线阅读,更多相关《汇编作业二.(17页珍藏版)》请在金锄头文库上搜索。

1、实验三 编程、编译、链接、跟踪(1)将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。1. assume cs: codesg2. 3. codesg segment4. mov ax,2000H5. mov ss,ax6. mov sp,07. mov sp,108. add sp,09. add sp,1010. pop ax11. pop bx12. push ax13. push bx 14. pop ax15. pop bx16. mov ax,4c00H17. int 21H18. 19. codesg ends20. end(1) 用Debug跟踪t1.exe的

2、执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。(2) PSP的头两个字节是CD20,用Debug加载t1.exe,查看PSP的内容。实验4:bx和loop的使用(1) 编程、向内存0:2000:23F依次传送数据063(3FH).程序如下:编译后如图:(2) 编程,向内存0:2000:23F依次传送数据063(3FH),程序只能使用9条指令,9条指令中包括“mov ax,4c000h”和“int 21h”。程序如下:编译后如图:(3) 下面的程序的功能是将“mov ax,4c000h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。程序如下:1. assume

3、 cs: codesg2. code sement3. mov ax, code4. mov dx,ax5. mov ax, 0020h6. mov es,ax7. mov bx,08. mov cx, 18h9. 10. s: mov al,bx11. mov es:bx,al12. inc bx13. loop s14. mov ax,4c00h15. int 21h16. 17. code ends18. end19.编译如下图:提示:(1)、复制的是什么?从哪里到哪里?答:题目的要求是把代码段内的指令当作数据,复制到目的地址。所以,源数据段ds和代码段cs相同,通过 mov ax,co

4、de/mov ds,ax (/符号是指两条指令的分隔)来设置源数据段。(2)、复制的是什么?有多少个字节?你如何知道要复制的字节的数量?答:可以先假设要复制8位1h0ffh数据(因为我们可以看出此程序的长度不可能大于0ffh个字节)的字节数(如:10h),把程序补全,以便通过编译。这时我们以准确的第一空所填内容code与假想的第二空内容10h将程序补充完整并将其编译、连接、运行,接着进行DEBUG,在DEBUG时我们可用R命令查看CX的值,这时我们可以看到CX的值为1C,由此我们可以算出该程序的长度1Ch-5h=17h,之所以减5是为了满足题目的要求(因为mov ax,4c00h/int 21

5、h这两条指令的长度等于5)实验五 编写、调试具有多个段程序(1)、将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题.程序如下:1. assume cs:code,ds:data,ss:stack2. data segment3. dw 0123h,0456h,0789h,0abch,0defh,0fedh,ocbah,09987h,4. data ends5. stack ends6. 7. code segment8. 9. start: mov ax,stack10. mov ss,ax11. mov sp,1612. mov ax,data13. mov ds,ax14. p

6、ush ds:015. push ds:216. pop ds:217. pop ds:018. 19. mov ax,4c00h20. int 21h21. code ends22. end start CPU执行程序,程序返回前,data段中的数据为多少?解:(0123H)不变 CPU执行程序,程序返回前,cs=?、ss=?、ds=?。解:cs=076CH、ss=076BH、ds=076AH. 设程序加载后,code段的段地址为X,则data段的段地址为?,stack段的段地址为?。解:程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。编译后如

7、图:(2)、将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。1. assume cs: code,ds:data,ss:stack2. 3. data segment4. de 0123H,0456H5. ata ends6. 7. stack segment8. dw 0,09. code segment10. start: mov ax,stack11. mov ss,ax12. mov sp,1613. mov ax,data14. mov ds,ax15. push ds:016. push ds:217. pop ds:218. pop ds:019. mov ax,4

8、c00h20. int 21h21. code ends22. end strat CPU执行程序,程序返回前,data段中的数据为多少?答:(0123H)不变 CPU执行程序,程序返回前,cs=?、ss=?、ds=?。答:CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH. 设程序加载后,code段的段地址为X,则data段的段地址为?,stack段的段地址为?。答:程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1。 对于如下定义的段:name segmentname ends如果段中的数据占N个字节,则程序加载后,

9、该段实际占有的空间为:?答:(N/16+1)*16. (N/16为取整数部分)编译如如下图:(4) 将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题。assume cs:code,ds:data,ss:stackdata segmentdw 0123H,0456Hata enndsstack segmentdw 0,0code segmentstart: mov ax,stackmov ss,axmov sp,16mov ax,datamov ds,axpush ds:0push ds:2pop ds:2pop ds:0mov ax,4c00hint 21hcode endsend

10、 start编译如下: CPU执行程序,程序返回前,data段中的数据为多少? 解:(0123H)不变 CPU执行程序,程序返回前,cs=076CH、ss=076BH、ds=076AH. 设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。(4) 如果将(1)、(2)、(3)题中的最后一条伪指令“end start”改为“end”(也就是说不指明程序的入口),则那个程序仍然可以正确执行?请说明原因。解:(1)、(2)不能正确执行(入口默认为data段的第一条指令),(3)能正确执行。如果不指明程序的入口,编译器自动默认整个代码的第一条指令为程序的入

11、口。(5) 程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。23. assume cs:code24. 25. a segment26. db 1,2,3,4,5,6,7,827. a ends28. b segmnt29. db 1,2,3,4,5,6,7,830. ends31. c segment32. db 0,0,0,0,0,0,0,033. c ends34.35. Code segment36. Start:mov ax,a37. mov ds,ax38. mov ds,ax39. mov bx,040. mov cx,841. S: mov a

12、l,ds:bx42. add al,ds:bx+1643. mov ds:bx+32,al44. inc bx45. loop s46. mov ax,4c00h 47. int 21h48. Code ends49. End start编译如下:(6) 程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。1. assume cs:code2. 3. a segment4. dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh5. aends6. b segment7. dw 0,0,0,0,0,0,0,08. b ends9. code segment10. 11. Start: mov ax,a12. mov ds,ax 13. mov bx,014. mov ax,b15. mov sp,1616. mov cx,817. s: push bx18. add bx,219. loop s20. mov ax,4c00h21. int 21h22. code ends23. end start

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号