qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页

2013年1月26日

摘要: 1. Linear Space & Physical Space 在硬件工程师和普通用户看来,内存就是插在或固化在主板上的内存条,它们有一定的容量——比如64 MB。但在应用程序员眼中,并不过度关心插在主板上的内存容量,而是他们可以使用的内存空间——他们可以开发一个需要占用1 GB内存的程序,并让其在OS平台上运行,哪怕这台运行主机上只有128 MB的物理内存条。而对于OS开发者而言,则是介于二者之间,他们既需要知道物理内存的细节,也需要提供一套机制,为应用程序员提供另一个内存空间,这个内存空间的大小可以和实际的物理内存大小之间没有任何关系。 我们将主板上的物理内存条所提供的内存空间定 阅读全文
posted @ 2013-01-26 19:10 qintangtao 阅读(456) 评论(0) 推荐(0) 编辑

摘要: 附程序分布图:程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放4、文字常量区 —常量字符串就是放在这里的。 程序 阅读全文
posted @ 2013-01-26 19:08 qintangtao 阅读(674) 评论(0) 推荐(0) 编辑

2013年1月25日

摘要: ret指令用栈中的数据,修改IP的值,从而实现近转移。第一种用法:CPU执行ret指令时,进行下面两步操作:(IP)=((SS)*16+(SP))(SP)=(SP)+2;第一种用法: ret n (n为整数)等效于(IP)=((SS)*16+(SP))(SP)=(SP)+2;(IP)=(IP)+n;例如ret 4pop ipadd sp,4 阅读全文
posted @ 2013-01-25 17:23 qintangtao 阅读(934) 评论(0) 推荐(0) 编辑

2013年1月24日

摘要: ;=======字符串的输入=========;功能:;1、在输入的同时显示这个字符串;2、在输入回车符后,字符串输入结束;3、能够删除已经输入的字符;;字符串的入栈、出栈、显示;参数说明:;1、(ah)=功能号,;0表示入栈;1表示出栈;2表示显示 ;2、ds:si指向字符栈空间;3、 对于0号功能:(al)=入栈字符;对于1号功能:(al)=返回的字符;对于2号功能:(dh)、(dl)=字符串在屏幕上显示的行、列位置assume cs:code, ds:stackstack segment dd 128 dup(0)stack endscode segmentstart: mov a... 阅读全文
posted @ 2013-01-24 11:21 qintangtao 阅读(973) 评论(0) 推荐(1) 编辑

2013年1月23日

摘要: ;编程:;(1) 清屏;(2) 设置前景色;(3) 设置背景色;(4) 向上滚动一行;入口参数说明:;(1)用ah寄存器传递功能号: 0 清屏, 1设置前景色,2设置背景色, 3向上滚动一行; (2)对于2 3 号功能,用al传送颜色值 al[0,1,2,3,4,5,6,7];各种功能如何实现;(1) 清屏:将显存中当前屏幕中的字符设为空格符;(2) 设置前景色:设置显存中当前屏幕中处于奇地址的属性字节的第0、1、2位;(3) 设置背景色:设置显存中当前屏幕中处于奇地址的属性字节的第4、5、6位;(4) 向上滚动一行:依次将第n+1行的内容复制到第n行,最后一行为空assume cs:code 阅读全文
posted @ 2013-01-23 17:20 qintangtao 阅读(534) 评论(0) 推荐(0) 编辑

摘要: 阅读全文
posted @ 2013-01-23 12:12 qintangtao 阅读(272) 评论(0) 推荐(0) 编辑

摘要: 阅读全文
posted @ 2013-01-23 12:11 qintangtao 阅读(164) 评论(0) 推荐(0) 编辑

摘要: 可屏蔽中断可屏蔽中断是 CPU可以不响应的外中断CPU是否响应可屏蔽中断,要看标志寄存器的IF位的设置 如果 IF=1, 则CPU在执行完当前指令后响应中断,引发中断过程 如果IF=0,则不响应可屏蔽中断8086CPU设置IF的指令:sti 设置IF=1cli 设置IF=0不可屏蔽中断不可屏蔽中断时CPU必须响应的外部中断当CPU检测到不可屏蔽中断信息时,则在执行完当前指令后,立即响应,引发中断过程对于8086CPU,不可屏蔽中断的中断类型码固定为2,所以在中断过程中,不需要取得中断类型码, 阅读全文
posted @ 2013-01-23 12:08 qintangtao 阅读(182) 评论(0) 推荐(0) 编辑

摘要: ;任务:; 安装一个新的int 9中断例程;功能:; 在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理 1 assume cs:code 2 3 stack segment 4 db 128 dup(0) 5 stack ends 6 7 code segment 8 start: 9 mov ax, stack10 mov ss, ax11 mov sp, 12812 13 push cs14 pop ds15 16 ;把自己的int9中断例程安装到0:[204h]17 mov ax, 018 mov es, ax19 mov si, offset int920 mov... 阅读全文
posted @ 2013-01-23 12:00 qintangtao 阅读(361) 评论(0) 推荐(0) 编辑

2013年1月22日

摘要: ;访问CMOS RAM;;编程:;以"年/月/日 时:分:秒" 的格式,显示当前的日期、时间; 1 assume cs:code 2 3 data segment 4 db '9/8/7 4:2:0', '$' 5 data ends 6 7 code segment 8 start: 9 10 mov ax, data 11 mov ds, ax 12 mov bx, 0 13 mov di, 0 ;初始化参数 14 15 s: 16 mov al, [bx] ;al 传递的参数 注意此时al存放的是9的ASCII码 17 ... 阅读全文
posted @ 2013-01-22 17:03 qintangtao 阅读(1171) 评论(0) 推荐(0) 编辑

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页