资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,习题复习,NEG,提示,NEG,指令,指令格式:,NEG OP,该指令完成对操作数取补,,即用零减去操作数,再把结果送回操作数,。用法例子如下:,NEG AL ;,操作数为寄存器,NEG MAXX ;,操作数为存储器,该指令执行结果影响标志位,SF,、,ZF,、,AF,、,PF,和,OF,,,对于,CF,一般总是,CF,1,,,只有当操作数为,0,时,CF,0。,11111001B,(=F9H=-7),取补为,00000111B(=07H=7),在这里也叫“取负”,回顾补码的定义,补码,补码是计算机中带符号数的实用表示方法。规定如下:,正数的补码与原码和反码是一样的。,负数的补码可由其反码的末位加1。即负数的补码是对其原码,除符号位外,各数值位求反并在末位加1而得到的,定点补码加减法的运算规则,操作数均为补码表示;,符号位一起参加运算;,加法:做,X,补,+,Y,补,;,减法:做,X,补,+,Y,补,;,运算过程中,符号位向前的进位为模,舍弃;,运算结果仍为补码。,为什么要用补码?,0,255,0,127,-128,0000,0000B,1111,1111B,01111,1111B,1000,0000B,1000,0001B,(-127),1000,0010B,(-126),0000,0000B,1111,1111B,(-1),0000,0000B,(0),补码序列,0111,1111B,用,128,位置表示,-128,,他们之间,相差,256,个单位,即整个坐标轴上的,数减,256,便是它要表示的数(负数),对于,8,位二进制便是,00H,(有一个进位),原码为:,1000,0000,0111,1111,1000,0000B,补码实现减法用加法实现,补码,=256-,原码,对于,8,位二进制,256,减一个数就相当于对这个数取反加一,对于补码直接运行加法运算(进位舍去),这就是取补码的原因?,取反操作,XOR,AX,0FFFFH;,与,1,相同的,1,变为,0,,而与,1,相异的,0,变为,1,,同样达到取反的目的。,NOT,AX,一个输入输出 程序分析,name test,org 100h,;print a message:,mov dx,offset msg,mov ah,9,int 21h,等待键入 键入,ASCII,存,AL,寄存器,wait_for_key:,mov ah,1,int 16h,jz wait_for_key,mov ah,0,int 16h,cmp al,,,30H,jb wait_for_key,cmpal,,,39h,jawait_for_key,;不是数字返回重新等待输入,;下面显示数字字符,mov ah,0eh,int 10h,mov dx,offset msg1,mov ah,9,int 21h,;显示提示字符串,mov dx,offset Ascnumber,mov ah,9,int 21h,;显示,$,结束的字符串,DVCC,系统,DVCC,系统硬件布局,定时,/,计数器,8253A,应用目的,学习,8253A,可编程定时,/,计数器与,8088CPU,的接口方法;,了解,8253A,的工作方式;,掌握,8253A,在各种方式下的编程方法。,定时,/,计数器,8253A,应用内容,一、实验内容,本实验原理图如图,3,10,所示,,8253A,的,A0,、,A1,接系统地址总线,A0,、,A1,,故,8253A,有四个端口地址,端口地址如表,3,2,所示。,8253A,的片选地址为,40H 4FH,。因此,本实验仪中的,8253A,四个端口地址为,40H,、,41H,、,42H,、,43H,,分别对应通道,0,、通道,1,、通道,2,和控制字。采用,8253A,通道,0,,工作在方式,3(,方波发生器方式,),,输入时钟,CLK0,为,1MHZ,,输出,OUTO,要求为,1KHZ,的方波,并要求用接在,GATE0,引脚上的导线是接地,(“0”,电平,),或甩空,(“1”,电平,),来观察,GATE,对计数器的控制作用,用示波器观察输出波形。,二、实验线路连接,(,1,),8253,的,GATE0,接,+5V,。,(,2,),8253,的,CLK0,插孔接分频器,74LS393,(左上方)的,T4,插孔,分频器的频率源为,4MHZ,。,三、实验步骤,1,、按图,3,10,连好实验线路,2,、运行实验程序,(,1,)联机时,实验程序文件名为,DVCCH8EXEH85S.EXE,。,(,2,)单机时,实验程序起始地址为,F000,:,9180,。,在系统显示监控提示符“,P.”,时:,输入,F000,按,F1,键 输入,9180,按,EXEC,键,3,、用示波器测量,8253,左侧,OUT0,插孔,应有方波输出。,实验原理图,CODE SEGMENT,ASSUME CS:CODE,ORG 1180H,START:JMP TCONT,TCONTRO EQU 0043H,TCON0EQU 0040H,TCONT:MOV DX,TCONTRO,MOV AL,36H,OUT DX,AL,MOV DX,TCON0,MOV AL,00H,OUT DX,AL,MOV AL,10H,OUT DX,AL,JMP$,CODE ENDS,END START,Winhex,软件编辑,H85S.OBJ,文件,红线标注机器码区,蓝线表明起始地址。,程序编译,C:DVCCH8ASM,目录中,.lst,文件用笔记本打开,含有机器码的列表文件,.lst,文件清单,0000CODE SEGMENT,ASSUME CS:CODE,1180ORG 1180H,1180,EB 01 90,START:JMP TCONT,=0043TCONTRO EQU 0043H,=0040TCON0EQU 0040H,1183,BA 0043,TCONT:MOV DX,TCONTRO,1186,B0 36,MOV AL,36H,1188,EE,OUT DX,AL,1189,BA 0040,MOV DX,TCON0,118C,B0 00,MOV AL,00H,118E,EE,OUT DX,AL,118F,B0 10,MOV AL,10H,1191,EE,OUT DX,AL,1192,EB FE,JMP$,1194CODE ENDS,END START,8259,源程序,CODE SEGMENT,ASSUME CS:CODE,INTPORT1 EQU 0060H,INTPORT2 EQU 0061H,INTQ3 EQU INTREEUP3,INTQ7 EQU INTREEUP7,ORG 11A0H,START:CLD,CALL WBUF1,CALL WRINTVER ;WRITE INTRRUPT,MOV AL,13H,MOV DX,INTPORT1,OUT DX,AL,MOV AL,08H,MOV DX,INTPORT2,OUT DX,AL,MOV AL,09H,OUT DX,AL,MOV AL,0F7H,OUT DX,AL,MOV BYTE PTR DS:0701H,01H;TIME=1,STI,WATING:CALL DISP ;DISP 8259-1,JMP WATING,WRINTVER:MOV AX,0H,MOV ES,AX,MOV DI,002CH,LEA AX,INTQ3,STOSW,MOV AX,0000h,STOSW,MOV DI,003CH,LEA AX,INTQ7,STOSW,MOV AX,0000h,STOSW,RET,INTREEUP3:CLI,MOV AL,DS:0701H,CALL CONVERS,MOV BX,077BH,MOV AL,10H,MOV CX,05H,INTRE0:MOV BYTE PTR DS:BX,AL,INC BX,LOOP INTRE0,MOV AL,20H,MOV DX,INTPORT1,OUT DX,AL,ADD BYTE PTR DS:0701H,01H,CMP BYTE PTR DS:0701H,06H,JNA INTRE2,MOV DS:077AH,191AH,MOV DS:077CH,1819H,mov DS:077Eh,1010H,INTRE1:CALL DISP,JMP INTRE1,CONVERS:AND AL,0FH,MOV BX,077AH,MOV DS:BX,AL,INC BX,RET,INTRE2:MOV AL,20H,MOV DX,INTPORT1,OUT DX,AL,STI,IRET,INTREEUP7:CLI,MOV AL,20H,MOV DX,INTPORT1,OUT DX,AL,MOV DS:077AH,1C1CH,MOV DS:077CH,101BH,mov DS:077Eh,1010H,INTRE3:CALL DISP,JMP INTRE3,disp:mov dx,077Fh,mov ah,20h,disp0:mov cx,00ffh,mov bx,dx,mov bl,ds:bx,mov bh,0h,push dx,mov dx,0ff22h,mov al,cs:bx+127bh,OUT DX,AL,mov dx,0ff21h,mov al,ah,OUT DX,AL,disp1:loop disp1,pop dx,dec dx,shr ah,01h,jnz disp0,mov dx,0ff22h,mov al,0FFH,OUT DX,AL,ret,data1:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,db 80h,90h,88h,83h,0c6h,0a1h,86h,8eh,db 0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,db 90h,0a3h,0a1h,86h,8fh,8259,WBUF1:MOV BX,0,MOV WORD PTR DS:BX+077AH,1701H,ADD BX,2,MOV WORD PTR DS:BX+077AH,0509H,ADD BX,2,MOV WORD PTR DS:BX+077AH,0802H,RET,CODE ENDS,END START,
展开阅读全文