汇编基础
文章平均质量分 71
lingdushanke
这个作者很懒,什么都没留下…
展开
-
矩阵的转置2
王爽汇编语言第二版学习笔记 一、题目要求在一个段中定义一个16*16(256个字节)的矩阵,并从00-FF填充数据。编程程序,实现该矩阵的转置,不允许使用其它的任何内存空间(包括栈) 二、实现代码assume cs:codesg,ds:datasg datasg segment db 256 dup (0)dat原创 2009-12-25 21:26:00 · 1135 阅读 · 0 评论 -
c语言强化训练笔记2010/5/8
不使用变量的编程 变量的本质是内存空间的别名,通过对汇编的学习和王爽汇编语言第二版的综合研究,我们可以在c程序中直接使用内存空间来编程 例如,我们想通过编程在屏幕中央显示8个绿色的a,可以通过写显存的方式在b800段内存写入显示的数据,同时,我们还需要有一个计数器来控制循环了多少次,可以把一段安全的空间来当计数器使用,程序可以这样编写main(){原创 2010-05-12 18:36:00 · 1006 阅读 · 0 评论 -
王爽汇编语言课程设计2
王爽汇编语言 第二版 课程设计2 编写一个可以自行启动的计算机,不需要在现有操作系统环境中运行的程序 一、相关资料 系统启动初始化完成后最终调用19h,该中断读取软盘的第一扇区或硬盘的第一扇区到0:7c00开始的512个字节的内存空间中,并将cs:ip指向0:7c00执行。更详细参考王爽汇编语言第二版,课程设计2,p.312 二、设计思路 将安装程原创 2010-04-06 18:42:00 · 9508 阅读 · 12 评论 -
王爽汇编语言综合研究-函数如何接收不定数量的参数
1、c语言如何传递参数编写这样一个程序试验void showchar(char a,int b);main(){ showchar(a,2);}void showchar(char a,int b){ *(char far *)(0xb8000000 + 160*10 + 80) = a; *(char far *)(0xb8000000原创 2010-04-18 08:59:00 · 3820 阅读 · 10 评论 -
王爽汇编语言综合研究-不用main函数编程
这一部分继续深入研究用汇编解释c的原理,尝试不用main()函数编写可以正确运行的程序1、首先编写一个简单的程序f(){ *(char far *)(0xb8000000+160*10+80) = a; *(char far *)(0xb8000000+160*10+81) = 2;}在TC中编译,连接这个程序。出现了一个连接错误 L原创 2010-04-17 16:25:00 · 5072 阅读 · 0 评论 -
王爽汇编语言综合研究-使用内存空间
1、在c程序中直接访问内存空间写入以下程序并调试main() { *(char *)0x2000 = a; *(int *)0x2000 = 0xf; *(char far *)0x20001000 = a; _AX = 0x2000; *(char *)_AX =原创 2010-04-14 01:27:00 · 5967 阅读 · 4 评论 -
汇编语言综合研究——使用寄存器
王爽汇编语言综合研究 使用寄存器 1、使用寄存器编程main函数是c语言编写程序的入口函数,但是main中的第一条语句并不是程序中被执行的第一条指令,还有很多其它语句。为了研究我们的程序编译后的语句,首先要找main函数的位置,可以通过下边的程序获得main函数的偏移地址 Main() { Printf(“%x/n”,mai原创 2010-04-13 16:56:00 · 2219 阅读 · 2 评论 -
用逻辑扇区号读写软盘的中断例程测试程序
王爽汇编语言 实验17 中断例程测试程序 一、实验要求 测试实验17中断例程 二、测试思路1、编写程序A,实现将显存中第一屏4000个字节(8个扇区)写入软盘2、编写程序B,实现将软盘中8个扇区的数据读出到显存第一屏中3、运行实验17的中断安装程序,然后运行程序A,清屏后运行程序B。正常状况下屏幕内容恢复 三、详细设计1、程序A原创 2010-03-30 16:12:00 · 900 阅读 · 0 评论 -
编写用逻辑扇区号读写软盘的中断例程
王爽汇编语言 实验十七 一、相关资料1、软盘 以3.5英寸软盘为例,软盘分为上下两面,每面80个磁道,每个磁道18个扇区,每个扇区512B则软盘的大小为:2面*80磁道*18扇区*512B=1440KB(约为1.44MB) 2、BIOS对访问磁盘的支持 BIOS提供了13h号中断来访问磁盘,该中断的参数如下:(ah)=int 13h的功能号(原创 2010-03-30 11:48:00 · 1236 阅读 · 0 评论 -
多个功能子程序的中断例程测试程序
王爽汇编语言 实验16 编写包含多个功能子程序的中断例程 测试程序 一、实验要求1、完全测试实验16中断例程17ch的所有功能,包含清屏、改变前景色、改变背景色、向上滚动一行2、用一个菜单来提示用户输入3、通过判断用户输入的命令来调用响应的子过程 二、分析1、输出菜单 定义一个数据段,存放菜单内容的几个以‘$为结尾的字符串,然后定义一个直接原创 2010-03-28 08:39:00 · 1781 阅读 · 0 评论 -
编写包含多个功能子程序的中断例程
王爽汇编语言 实验16 编写包含多个功能子程序的中断例程 一、实验要求安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序(1)清屏;(2)设置前景色(3)设置背景色(4)向上滚动一行 入口参数说明:(1)用ah寄存器传递功能号,0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行(2)对于2,3功能,用al传递颜色值,(a原创 2010-03-25 17:34:00 · 1256 阅读 · 0 评论 -
王爽汇编语言课程设计1
一、实验要求在屏幕输出实验七中的数据二、设计思路1、将实验七的程序编写成一个子过程finishing,在主程序中调用,可以获得实验七种指定格式的table段数据,设置es:bx指向table段中第一行2、创建一个数据缓存区buffer,设置ds:si指向buffer3、对于字符串,从table中读取后写入buffer,末尾写入0;对于数值,直接调用实验10中写好的dto原创 2009-12-29 18:35:00 · 3521 阅读 · 4 评论 -
编写0号中断的处理程序
一、实验要求 编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“overflow”,然后返回到DOS。 二、设计思路:1、编写0号中断的处理程序,该程序显示字符串,然后返回到DOS2、编写安装程序,将步骤1中处理程序复制到0000:0200开始的内存中3、修改中断向量表,使0号中断的处理程序地址指向0000:0200 三、详细设计assu原创 2010-03-11 16:29:00 · 2165 阅读 · 0 评论 -
将数值转换为表示十进制数的字符串2
王爽汇编语言第二版 一、实验要求 上一部分实现了把一个word类型的数据转换为表示十进制数的字符串,现有需求要实现dword类型数据的转换,可用类似算法实现。算法参考http://blog.csdn.net/lingdushanke/archive/2009/12/28/5090736.aspx。 对dword类型的转换可能出现除法溢出的问题,解决方法参原创 2009-12-28 15:51:00 · 2246 阅读 · 0 评论 -
将数值转换为表示十进制数的字符串
王爽汇编语言第二版,实验10.3 一、实验要求编写一个子程序,实现将一个数值转换为表示十进制数的字符串 二、程序接口名称:dtoc功能:将word型数据转变为十进制数的字符串,字符串以0为结尾符参数:(ax) = word型数据 ds:si指向字符串的首地址返回:无 三、算法概述1、可以反复调用除法运算除以10d取余数,直到商为0原创 2009-12-28 14:00:00 · 3867 阅读 · 0 评论 -
解决除法溢出问题
王爽汇编语言第二版实验10.2 一、实验要求 当用div指令进行8位除法运算时结果大于8位,或进行16位除法运算结果大于16位时,会出现除法溢出的错误。要求编写一个子程序,实现支持结果不会出现溢出的除法运算 二、算法概述 通过一个公式将可能产生溢出的运算X/N,转变为多个不会产生溢出的除法运算。公式中,等号右边的所有除法运算都可以用d原创 2009-12-27 19:34:00 · 7764 阅读 · 5 评论 -
显示字符串的子程序
王爽汇编语言第二版,实验10.1 一、实验要求编写一个显示用0结束字符串的子程序,要求向外提供与显存结构无关的接口 二、子程序接口名称:show_str功能:在指定位置,用指定的颜色,显示一个用0结束的字符串参数:(dh)=行号(取值范围0-24), (dl)=列号(取值范围0-79), (cl)=颜色, ds:原创 2009-12-27 12:16:00 · 3369 阅读 · 0 评论 -
矩阵的转置1
王爽汇编第二版学习笔记 一、题目要求:1、在一个段中定义两个16*16(256个字节)的内存空间矩阵,对第一个矩阵中用循环填充00-FF。2、要求在第二个矩阵中实现对第一个矩阵的转置 二、实现代码assume cs:codesg,ds:datasg datasg segment db 256 dup (0)原创 2009-12-25 17:35:00 · 1155 阅读 · 0 评论 -
c语言强化训练笔记2010/5/9
函数指针下面是关于函数指针的一些资料函数指针是指向函数的指针变量。因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些原创 2010-05-13 10:54:00 · 1112 阅读 · 1 评论