
微机原理习题复习.ppt
35页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]补;运算过程中,符号位向前的进位为模,舍弃;运算结果仍为补码02550127-12800000000B11111111B011111111B10000000B10000001B (-127)10000010B (-126)00000000B11111111B (-1)00000000B (0)补码序列01111111B用128位置表示-128,他们之间相差256个单位,即整个坐标轴上的数减256便是它要表示的数(负数)对于8位二进制便是00H(有一个进位)原码为:100000000111111110000000B补码=256-原码对于8位二进制256减一个数就相当于对这个数取反加一对于补码直接运行加法运算(进位舍去)这就是取补码的原因?XORAX,0FFFFH;与1相同的1变为0,而与1相异的0变为1,同样达到取反的目的。
NOTAXname "test"org 100h; print a message:mov dx, offset msgmov ah, 9int 21hwait_for_key:mov ah, 1int 16hjz wait_for_keymov ah, 0int 16hcmp al,30Hjb wait_for_keycmpal,39hjawait_for_key;不是数字返回重新等待输入;下面显示数字字符mov ah, 0ehint 10hmov dx, offset msg1mov ah, 9int 21h;显示提示字符串mov dx, offset Ascnumbermov ah, 9int 21h;显示$结束的字符串学习8253A可编程定时/计数器与8088CPU的接口方法;了解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)联机时,实验程序文件名为(2)单机时,实验程序起始地址为F000:9180在系统显示监控提示符“P.”时:输入F000 按F1键输入9180 按EXEC键3、用示波器测量8253左侧OUT0插孔,应有方波输出CODE SEGMENTASSUME CS:CODEORG 1180HSTART:JMP TCONTTCONTRO EQU 0043HTCON0EQU 0040HTCONT:MOV DX,TCONTROMOV AL,36HOUT DX,ALMOV DX,TCON0MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALJMP $CODE ENDSEND START红线标注机器码区,蓝线表明起始地址。
C:\DVCC\H8ASM目录中.lst文件用笔记本打开0000CODE SEGMENT ASSUME CS:CODE 1180ORG 1180H 1180 EB 01 90START:JMP TCONT = 0043TCONTRO EQU 0043H = 0040TCON0EQU 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 CODE SEGMENTASSUME CS:CODEINTPORT1 EQU 0060HINTPORT2 EQU 0061HINTQ3 EQU INTREEUP3INTQ7 EQU INTREEUP7ORG 11A0HSTART:CLDCALL WBUF1CALL WRINTVER ;WRITE INTRRUPTMOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08HMOV DX,INTPORT2OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV BYTE PTR DS:[0701H],01H;TIME=1STIWATING: CALL DISP ;DISP 8259-1JMP WATINGWRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSWMOV AX,0000h STOSW MOV DI,003CH LEA AX,INTQ7 STOSW MOV AX,0000h STOSW RETINTREEUP3: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 INTRE0MOV 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],1010HINTRE1: CALL DISP JMP INTRE1CONVERS: AND AL,0FH MOV BX,077AH MOV DS:[BX],AL INC BX RETINTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL STI IRETINTREEUP7: CLI MOV AL,20H MOV DX,INTPORT1 OUT DX,AL MOV DS:[077AH],1C1CH MOV DS:[077CH],101BH mov DS:[077Eh],1010HINTRE3: CALL DISP JMP INTRE3disp: 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,ALmov dx,0ff21h mov al,ah OUT DX,ALdisp1: loop disp1 pop dx dec dx shr ah,01h jnz disp0mov 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,8fhWBUF1: 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。
