1、习题复习NEG提醒NEG指令 指令格式:NEG OP 该指令完成对操作数取补,即用零减去操作数,再把结果送回操作数。使用方法例子以下:NEG AL ;操作数为存放器 NEG MAXX ;操作数为存放器该指令执行结果影响标志位SF、ZF、AF、PF和OF,对于CF普通总是CF1,只有当操作数为0时CF0。11111001B(=F9H=-7)取补为00000111B(=07H=7)在这里也叫“取负”第1页回顾补码定义补码补码 补码是计算机中带符号数实用表示方法。要求以下:正数补码与原码和反码是一样。负数补码可由其反码末位加1。即负数补码是对其原码除符号位外各数值位求反并在末位加1而得到第2页定点补
2、码加减法运算规则操作数均为补码表示;符号位一起参加运算;加法:做X补+Y补;减法:做X补+Y补;运算过程中,符号位向前进位为模,舍弃;运算结果仍为补码。第3页为何要用补码?00000000B11111111B011111111B10000000B10000001B (-127)10000010B (-126)00000000B11111111B (-1)00000000B (0)补码序列01111111B用128位置表示-128,他们之间相差256个单位,即整个坐标轴上数减256便是它要表示数(负数)对于8位二进制便是00H(有一个进位)原码为:100000000111111110000000
3、B第4页补码实现减法用加法实现补码=256-原码对于8位二进制256减一个数就相当于对这个数取反加一对于补码直接运行加法运算(进位舍去)这就是取补码原因?第5页取反操作XOR AX,0FFFFH;与1相同1变为0,而与1相异0变为1,一样到达取反目标。NOT AX第6页一个输入输出 程序分析name testorg 100h;print a message:mov dx,offset msgmov ah,9int 21h第7页等候键入 键入ASCII存AL存放器wait_for_key:mov ah,1int 16hjz wait_for_keymov ah,0int 16h第8页cmp al
4、,30Hjb wait_for_keycmpal,39hjawait_for_key;不是数字返回重新等候输入;下面显示数字字符mov ah,0ehint 10h第9页mov dx,offset msg1mov ah,9int 21h;显示提醒字符串mov dx,offset Ascnumbermov ah,9int 21h;显示$结束字符串第10页DVCC系统第11页DVCC系统硬件布局第12页定时/计数器8253A应用目 学习8253A可编程定时/计数器与8088CPU接口方法;了解8253A工作方式;掌握8253A在各种方式下编程方法。第13页定时/计数器8253A应用内容一、试验内容
5、本试验原理图如图310所表示,8253AA0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,端口地址如表32所表示。8253A片选地址为40H 4FH。所以,本试验仪中8253A四个端口地址为40H、41H、42H、43H,分别对应通道0、通道1、通道2和控制字。采取8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ,输出OUTO 要求为1KHZ方波,并要求用接在GATE0引脚上导线是接地(“0”电平)或甩空(“1”电平)来观察GATE对计数器控制作用,用示波器观察输出波形。二、试验线路连接 (1)8253GATE0接+5V。(2)8253CLK0插孔
6、接分频器74LS393(左上方)T4插孔,分频器频率源为4MHZ。三、试验步骤 1、按图310连好试验线路 2、运行试验程序(1)联机时,试验程序文件名为DVCCH8EXEH85S.EXE。(2)单机时,试验程序起始地址为F000:9180。在系统显示监控提醒符“P.”时:输入F000 按F1键 输入9180 按EXEC键 3、用示波器测量8253左侧OUT0插孔,应有方波输出。第14页试验原理图第15页CODE SEGMENTASSUME CS:CODEORG 1180HSTART:JMP TCONTTCONTRO EQU 0043HTCON0EQU 0040HTCONT:MOV DX,TC
7、ONTROMOV AL,36HOUT DX,ALMOV DX,TCON0MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALJMP$CODE ENDSEND START第16页WINHEX软件编辑H85S.OBJ文件红线标注机器码区,蓝线表明起始地址。第17页程序编译C:DVCCH8ASM目录中.lst文件用笔记本打开第18页含有机器码列表文件第19页.LST文件清单0000CODE SEGMENT ASSUME CS:CODE 1180ORG 1180H 1180 EB 01 90START:JMP TCONT =0043TCONTRO EQU 0043H =0040
8、TCON0EQU 0040H 1183 BA 0043TCONT:MOV DX,TCONTRO 1186 B0 36MOV AL,36H 1188 EEOUT DX,AL 1189 BA 0040MOV DX,TCON0 118C B0 00MOV AL,00H 118E EEOUT DX,AL 118F B0 10MOV AL,10H 1191 EEOUT DX,AL 1192 EB FEJMP$1194CODE ENDS END START 第20页8259源程序CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HIN
9、TQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7第21页ORG 11A0HSTART:CLDCALL WBUF1CALL WRINTVER ;WRITE INTRRUPTMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2第22页OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV BYTE PTR DS:0701H,01H;TIME=1STI第23页WATING:CALL DISP ;DISP 8259-1JMP WATINGWRINTVER:MOV A
10、X,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW第24页 MOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RET第25页INTREEUP3:CLI MOV AL,DS:0701H CALL CONVERS MOV BX,077BH MOV AL,10H MOV CX,05HINTRE0:MOV BYTE PTR DS:BX,AL INC BX LOOP INTRE0第26页MOV AL,20H MOV DX,INTPORT1 OUT DX,AL ADD BYT
11、E PTR DS:0701H,01H CMP BYTE PTR DS:0701H,06H JNA INTRE2 MOV DS:077AH,191AH MOV DS:077CH,1819H mov DS:077Eh,1010H第27页INTRE1:CALL DISP JMP INTRE1CONVERS:AND AL,0FH MOV BX,077AH MOV DS:BX,AL INC BX RET第28页INTRE2:MOV AL,20H MOV DX,INTPORT1 OUT DX,AL STI IRET第29页INTREEUP7:CLI MOV AL,20H MOV DX,INTPORT1 O
12、UT DX,AL MOV DS:077AH,1C1CH MOV DS:077CH,101BH mov DS:077Eh,1010HINTRE3:CALL DISP JMP INTRE3第30页disp:mov dx,077Fh mov ah,20hdisp0: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第31页mov dx,0ff21h mov al,ah OUT DX,ALdisp1:loop disp1 pop dx dec dx shr ah
13、,01h jnz disp0第32页mov dx,0ff22h mov al,0FFH OUT DX,AL retdata1: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第33页8259WBUF1:MOV BX,0MOV WORD PTR DS:BX+077AH,1701HADD BX,2MOV WORD PTR DS:BX+077AH,0509HADD BX,2MOV WORD PTR DS:BX+077AH,0802HRETCODE ENDSEND START第34页第35页