王爽《汇编语言》第4版课程设计2

本文作者分享了在王爽《汇编语言》第4版中进行课程设计2的实践经验,强调了这本书在学习汇编语言过程中的指导作用。通过循序渐进的方式,作者成功自学并完成了具有一定难度的课程设计,期间克服了种种困难,如遇到编程问题和调试bug。经过一个月的努力,作者最终完成并调试通过了程序,从中收获颇丰。现在,作者将程序代码公开,供他人参考,程序在DOS7.1操作系统环境下运行。
摘要由CSDN通过智能技术生成

        这本书里的课程设计2是对我们这个课程的学习进行总结的一个很好的练习,几乎用到了这本书所涉及到的所有知识和编程技巧。这本书的教学方式也是很不错的,把知识点分散开来,用到什么讲什么,让我们学习有了目的性,不会在学习的过程中迷失方向,不知所云。每次教的内容基本都是下一部分内容的基础,循序渐进,方便我们接受。正因为这样,这本书很适合自学。本人就是通过自学这本书来学习汇编的,学的很轻松,不知不觉就学完了这本书,掌握了知识。在这里一定要给这本书和写这本书的王爽老师给个好评。

        回到课程设计2上来,这个课程设计本身还是有一定难度的,我刚开始也遇到了一些问题, 不知道该怎么写,知道该怎么写了之后,有时还会遇到一些莫名其妙的bug。我通过不断复习这本书,并且在网上参考了一些别人写的程序,又通过不断调试,经过了差不多一个月,终于把课程设计2完成了,并且调试通过。这时我就感觉我的学习是有收获的,而且受益良多。现在,我就把我写的程序分享在这里,供需要的人进行参考。另外程序是在VMware虚拟机中运行的,里面装的是DOS7.1操作系统。

assume cs:code,ss:stack,ds:data

data segment
	setup_check dw offset setup_success_message,offset setup_fail_message	;安装信息地址表。
	setup_success_message db "Setup success,please reboot system.",0	;安装成功。
	setup_fail_message db "Setup fail!",0		;安装失败。
data ends

stack segment
	db 16 dup (0)
stack ends

code segment
start:
;===========================================================
;=                                                           安装程序                                                                 =
;===========================================================
	mov bx,stack
	mov ss,bx
	mov sp,16
	mov ax,data
	mov ds,ax
		;将引导程序写入软驱a中的软盘,存储在0面0道1扇区,用来向内存读入主程序。
	mov bx,cs
	mov es,bx
	mov bx,offset introduce
	mov al,1
	mov ch,0
	mov cl,1
	mov dh,0
	mov dl,0
	mov ah,3
	int 13h
		;检查安装是否成功。
	cmp ah,0	
	jne show_setup_message
		;将主程序写入软驱a中的软盘,从0面0道2扇区开始存储。
	mov bx,cs
	mov es,bx
	mov bx,offset main_sub
	mov ax,offset main_sub_end-offset main_sub	;计算主程序长度,从而知道要用多少个扇区存储。
	mov dx,0
	mov cx,512
	div cx
	cmp dx,0
	je judge_rem_setup
	inc ax
judge_rem_setup:	;al=写入的扇区数,ah=0。
	mov ch,0
	mov cl,2
	mov dh,0
	mov dl,0
	mov ah,3
	int 13h
		;显示安装是否成功。
show_setup_message:
	call cls
	cmp ah,0
	je setup_check_over
	mov ah,2
setup_check_over:
	mov al,ah
	mov ah,0
	mov si,ax
	mov si,ds:[si]
	mov dh,12
	mov dl,23
	mov cl,7
	call show_str0

	mov ax,4c00h
	int 21h
;===========================================================

;===========================================================
;=                                                           引导程序                                                                 =
;===========================================================
introduce:
	jmp short begin_introduce
	stack_introduce   db 16 dup (0)		;引导程序使用的栈段。
		;将主程序从软驱a中的软盘读出,从0:7e00h开始存储。
begin_introduce:
	mov ax,0
	mov ss,ax
	mov sp,offset stack_introduce-offset introduce+16+7c00h
	mov bx,0
	mov es,bx
	mov bx,7e00h
	mov ax,offset main_sub_end-offset main_sub	;计算主程序长度,从而知道主程序在多少个扇区中存储。
	mov dx,0
	mov c
阅读下面的材料 : 开机后, CPU 自动进入到 FFF0:0 单元处执行,此处有一条跳转指令。 CPU 执行该指令后,转去执行 BIOS 中的硬件系统检测和初始化程序。 初始化程序将建立 BIOS 所支持的中断向量,即将 BIOS 提供的中断历程的入口地址登记在中断向量表中。 硬件系统检测和初始化完成后,调用 INT 19H 进行操作系统的引导。 如果设为从软盘启动操作系统,则 INT 19H 将主要完成一下工作: ( 1 )控制 0 号软驱,读取软盘 0 道 0 面 1 扇区的内容到 0 : 7C 00 。 ( 2 )将 CS:IP 指向 0 : 7C 00 。 软盘的 0 道 0 面 1 扇区中装有操作系统引导程序。 INT 19H 将其装到 0 : 7C 00 处后,设置 CPU 从 0 : 7C 00 开始执行此处的引导程序,操作系统被激活,控制计算机。 如果在 0 号软驱中没有软盘,或发生软盘 I/O 错误,则 INT 19H 将主要完成以下工作 ; (1) 读取硬盘 C 的 0 道 0 面 1 扇区的内容到 0 : 7C 00 ; (2) 将 CS:IP 指向 0 : 7C 00 。 这次课程设计的任务是编写一个可以自行启动计算机,不需要在现有操作系统环境中运行的程序。 改程序的功能如下: ( 1 )列出功能选项,让用户通过键盘进行选择,界面如下: 1 ) reset pc ; 重新启动计算机 2 ) Start system ; 引导现有的操作系统 3 ) Clock ; 进入时钟程序 4 ) Srt clock ; 设置时间 ( 2 )用户输入“ 1 ”后重新启动计算机。(提示:考虑 FFFF:0 ) ( 3 )用户输入“ 2 ” 后引导现有的操作系统。(提示:考虑硬盘 C 的 0 道 0 面 1 扇区) ( 4 )用户输入“ 3 ”后,执行动态现实当前日期,时间的程序。 现实格式如下:年 / 月 / 日 时:分:秒 进入此项功能后,一直动态现实当前的时间,在屏幕上将出现时间按秒变化的效果。(提示:循环读取 CMOS ) 当按下 F1 键后,改变现实颜色;按下 ESC 键后,返回到主选单。(提示:利用键盘中断) ( 5 )用户输入“ 4 ”后可更改当前的日期,时间,更改后返回到主选单。(提示:输入字符串) 下面给出的几点建议: ( 1 )在 DOS 下编写安装程序,在按转程序中包含任务程序; ( 2 )运行安装程序,将任务程序写到软盘上; ( 3 )若要任务程序可以在开机后自行执行,要将它写到软盘的 0 道 0 面 1 扇区上。如果程序长度大于 512B ,则需要用多个扇区存放,这种情况下,处于软盘 0 道 0 面 1 扇区中的程序就必须负责将其他扇区中的内容读入内存。 这个程序较为复杂,它用到了我们所学到的所有技术,需要进行仔细地分析和耐心地调试。这个程序对于我们的整个学习过程是具有总结性的,希望读者能够尽力完成。
### 回答1: 《汇编语言 第4 王爽 pdf》是一本经典的计算机教材,主要介绍了汇编语言的基本原理和编程方法。本书内容详实全面,对于学习汇编语言具有很强的实用性和指导性。 首先,本书通过介绍计算机组成原理、指令系统和寻址方式等基础知识,帮助读者全面理解计算机的工作原理。通过此部分的学习,读者可以对计算机的各个组成部分进行了解,为后续的汇编语言编程打下良好基础。 其次,本书详细讲解了汇编语言的基本语法和指令集。通过具体的代码示例和相关练习,读者可以逐步掌握如何进行数据的存储和运算,以及如何使用寻址方式进行数据传递和控制程序流程。同时,本书还介绍了常用的汇编指令和编程技巧,如循环、条件判断、数组和函数等,帮助读者解决实际问题。 此外,本书还特别关注了汇编语言与C语言的关系和应用。通过对比分析,读者可以更好地理解两种语言之间的联系和差异,充分利用汇编语言的优势来进行性能优化和系统开发。 总结来说,《汇编语言 第4 王爽 pdf》是一本经典而实用的教材,对于理解计算机底层原理、提高程序编写能力和进行系统开发都具有重要的意义。无论是计算机科学专业的学生,还是从事相关工作的从业者,都可以通过学习本书来提升自己的技术水平。 ### 回答2: 《汇编语言 第4》是王爽编写的一本经典的汇编语言教材。该教材以通俗易懂的方式,介绍了汇编语言的基本原理和应用技巧。 在这本书中,王爽首先系统地介绍了计算机的基本知识,包括计算机的组成结构、运算器、控制器等。然后,他详细讲解了汇编语言的基本知识,包括汇编语言的特点、汇编指令的格式、汇编程序的编写等。 接着,王爽介绍了汇编语言的程序设计方法和技巧。他通过丰富的例子和详细的讲解,教授了如何使用汇编语言编写各种程序,如输入输出程序、字符串处理程序、数组操作程序等。通过学习这些例子,读者可以逐步掌握汇编语言的应用。 此外,王爽还介绍了8086指令系统和保护模式的编程,并讲解了汇编程序的调试和优化技巧。他通过大量的实例和实践指导,帮助读者深入理解和掌握汇编语言的高级知识和技术。 《汇编语言 第4》的特点是内容全面、深入浅出,适合初学者和有一定汇编语言基础的读者阅读。这本书的另一个优点是配有大量的习题和实践项目,读者可以通过完成这些习题和项目,进一步加深对汇编语言的理解和应用能力。 综上所述,《汇编语言 第4》是一本权威、经典且实用的汇编语言教材,可以帮助读者全面理解汇编语言的原理和应用,并掌握汇编语言的编程技巧和调试优化技巧。对于想要深入了解计算机底层原理和编程的读者来说,阅读这本书是一个很好的选择。 ### 回答3: 《汇编语言 第4》是由王爽撰写的经典教材,该书以汇编语言为主题,全面系统地介绍了汇编语言的基本概念、基本指令和编程技巧。 这本教材共分为13章,内容包括了汇编语言的发展历程、基本概念和原理、汇编语言的基本组成和格式。同时,还介绍了常用的寻址方式和常见的指令集,如8086指令集和80386指令集等。此外,书中还详细说明了汇编语言程序的编写和调试方法,并给出了大量的实例和练习题,以帮助学习者掌握汇编语言的编程技巧。 《汇编语言 第4》的特点是理论与实践相结合,既有理论知识的系统介绍,又有大量的实例和练习,可以帮助读者深入理解汇编语言的原理和应用。另外,该书对一些常见的编程错误和调试技巧也进行了详细讲解,有助于读者提高编程的效率和调试的准确性。 本书的优点在于,用简明的语言和通俗的讲解风格,将抽象的概念和复杂的原理以生动的方式呈现给读者,使读者能够轻松理解和掌握汇编语言的知识。同时,书中的例子和练习题也非常实用和有针对性,能够帮助读者熟练掌握汇编语言的编程技巧。 总之,《汇编语言 第4》是一本经典的汇编语言教材,对于想要深入学习和了解汇编语言的读者来说,是一本值得推荐的书籍。无论是初学者还是有一定基础的读者,都可以通过阅读该书来提高自己的汇编语言编程能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值