09 2013 档案

摘要:assume cs:code,ds:data,es:info_numdata segment db '11/11/11 11:11:11$' ;预设字符串data endsinfo_num segment db 9,8,7,4,2,0 ;端口时间地址列表info_num endscode segmentstart: mov ax,data mov ds,ax mov si,0 ;初始指向字符串首 mov ax,info_num mov es,ax mov bp,0 ;指向端口时间地址列表首 ... 阅读全文
posted @ 2013-09-09 10:30 tsembrace 阅读(1257) 评论(0) 推荐(1) 编辑
摘要:这篇是自己去年学习时候写的,重新放出来,可以和现在的对比一下:实验要求:编程:以“年/月/日 时:分:秒”的格式显示出当前的日期、时间。准备工作:因为CMOS9号单元存储的是年份数据,那么该数据对应的是两位的十进制数字,拿今年2011年来说,9号单元里存储的就应该是BCD码:00010001.为了验证一下,同时也巩固下CMOS的读写操作,做了一个小程序,如下:-----------------------------------assume cs:codecode segmentstart: mov al,9 out 70h,al in al,71h mov bl,al mov al,8 ou 阅读全文
posted @ 2013-09-09 10:28 tsembrace 阅读(970) 评论(0) 推荐(0) 编辑
摘要:第十四章 端口*PC机中,和CPU通过总线相连的芯片除了各种寄存器外,还有以下三种芯片:1、各种接口卡(如网卡、显卡)上的接口芯片,他们控制接口卡进行工作;2、主板上的接口芯片,CPU通过他们对部分外设进行访问;3、其他芯片,用来存储相关系统信息,或进行相关的输入输出处理。上述三种芯片都有一组供CPU读写的寄存器,物理上可能处于不同的芯片中,但均具备以下特点:1、所在的芯片与CPU通过总线相连;2、CPU对这些芯片进行读写操作时都通过控制线向其所在的芯片发出端口读写指令;3、从CPU的角度,讲这些寄存器都当做端口,并对他们进行统一编址,建立统一的端口地址空间,每个端口在地址空间中均有一个地址。 阅读全文
posted @ 2013-09-09 09:39 tsembrace 阅读(311) 评论(0) 推荐(0) 编辑
摘要:本章在用int 7ch实现loop指令功能时候,所用的参数为cx:循环次数,bx:loop指令的转移位移值。cx的值可以在调用程序里给出,而bx的值却需要用表达式表示,同时为了可以表达,也需要在中断调用指令后加一个无实际含义的"s1:nop"之类的指令,以使得可以将bx表达为"offset s-offset s1"。其实,通过int 7ch实现loop的要点在于在循环未结束(即cx!=0)时将ip指向跳转目的偏移地址,即s处。因此,设置入口参数为bx=offset s.;中断例程安装程序二assume cs:code code segment start 阅读全文
posted @ 2013-09-08 20:26 tsembrace 阅读(622) 评论(0) 推荐(0) 编辑
摘要:第十三章 int指令*int n引发n号中断过程,执行过程如下:(1)取得中断类型码n(2)pushf,TF=0,IF=0(3)push cs,push ip(4)(cs)=(0000:(4n+2)),(ip)=(0000:(4n))*用int 7ch实现loop指令功能的分析(1)loop实现的是指令跳转,属于短转移,即位移量在-128~127之间;同时,需要获得cx以确定循环次数;通过判断cx是否为0来决定是否执行跳转。(2)cx值可从调用程序中获得;7ch中断例程依据判断cx=0?来确定跳转,可以想到用jmp指令实现(?未深入细想)或者按书上用iret,修改栈顶元素的值,使其指向跳转目的 阅读全文
posted @ 2013-09-08 19:34 tsembrace 阅读(348) 评论(0) 推荐(0) 编辑
摘要:assume cs:code code segment start:;do0安装程序----------------- mov ax,code mov ds,ax mov si,offset do0 mov ax,0000 mov es,ax mov di,0200h CLD mov cx,offset do0end-offset do0 rep movsb;do0安装结束-----------------;设置0号中断程序入口--------- mov ax,0 mov es,ax mov word ptr es:[0000],200h mov ax,0000h mov word ptr e 阅读全文
posted @ 2013-09-06 16:37 tsembrace 阅读(476) 评论(0) 推荐(0) 编辑
摘要:第十二章 内中断*四种引发内中断的情况(1)除法错误,如溢出;对应中断类型码0(2)单步执行;对应中断类型码1(3)into指令;对应中断类型码4(4)int N;对应中断类型码N*中断向量表当引发内中断时候,cpu转入执行相应中断程序,而各类中断类型码对应的中断程序固化存于内存中;这就需要通过不同的中断类型码以获取其对应的中断程序的入口地址,即有了中断向量表。中断向量表固化于0000:0000~03ffh内存段中;中断类型码n:对应中断程序的入口地址为:段地址0000:(4n+2),偏移地址0000:(4n).*中断过程-----中断开始------(1)响应中断,取得中断类型码n(2)pu 阅读全文
posted @ 2013-09-06 16:02 tsembrace 阅读(577) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示