11=1011B
0.3=0.01001 1001 1001B

假如要求取4位小数,则0.3=0.0100B 11.3=1011.0100B

(2)1101 0010 11B
(4)0100 0000 1010 1B
(5)01111111.11B
(1)78H
(2)0A6H
(1)a AND b

(2)a OR b

(3)a XOR b

(4)NOT a

(1)+ 101 0101B
(2)-101 0101B
(5)+100 0000B
(6)-100 0000B
(1)[a]原=1110 1011B, [b]原=0100 1010B
负数的补码求解:(1)原码除最高位取反 (2)加1
[a]补=1001 0101B
b为正数,补码等于原码, [b]补=0100 1010B

(4) [a]补= 37H, [b]补= 0C7H, a+b= [a]补+ [b]补


十进制数66.5转换成八进制数是



(1)算术逻辑单元ALU:完成所有的运算操作; (2)工作寄存器:暂存寻址信息咍计算过程中的中间结果; (3)控制器:完成指令的读入、寄存和译码,并产生控制序列,使ALU 完成指定操作; (4)I/O 控制逻辑:处理I/O 操作。
8086CPU内部有14个16位寄存器,其中8个通用寄存器(4 个数据寄存器AX、BX、CX、DX,4个地址指针/变址寄存器SI、DI、SP、BP),4个段寄存器(CS、DS、ES、SS),2 个控制寄存器(指令指针IP,微处理器状态字PSW)。
(3)CFA0H








var1 DW 4512H, 4512,-1,100/3, 10H,65530
var2 DB ’BYTE’,’word’,’WORD’
buf2 DB 7 DUP (5 DUP(55H),10 DUP (240))







AND AX,0FFF0H
OR AX,000FH
XOR AL,0F0H


AND AL,5FH SUB AL,20H
OR AL,20H ADD AL,20H
XOR AX,0FFFFH 或者 NOT AX
XOR DX,007FH
XCHG CH,CL

















xxxxxxxxxxMOV AX,0MOV DS,AX ; 得到段地址MOV SI,0; 得到偏移地址MOV CX,16*1024; 循环次数为16K,为寻址空间MOV AL,55HCHECK: MOV [SI],ALCMP [SI],ALJAE ERRORINC SILOOP CHECKMOV DL,0EEHJMP NEXTERROR: MOV DL,01H NEXT: …






xxxxxxxxxxMOV CX ,10; 循环次数10LEA SI,BUFFER; 得到BUFFER的有效地址,给SIMOV DX,04E5H; 得到74LS244的地址WAIT1:IN AL,DX; 读取74LS244管脚值,存放在AL中AND AL,98H; bit3、bit4、bit7保持不变,其余清零CMP AL,98H; AL与98H比较,相当于AL=AL-98HJNZ WAIT1; 如果AL不等于0,跳转到WAIT1,否则,顺序执行MOV DX,0E504H; 得到74LS245的地址L1:MOV AL,[SI]; 把BUFFER的第一个字节给ALOUT DX,AL; 输出第一个字节INC SI; SI指向BUFFER的第二个字节(循环1次时)LOOP L1; 循环次数为CX的值,10次HLT








xxxxxxxxxx;2个计数器,则需要2个3步走,当时长为八位时候,可以省略3步走的第3步(写入高8位时常数);计数器0时常数N0=20,20可以用8位表示,所以读写规则设置为01MOV DX,287H; 控制字端口地址MOV AL,00010110B ; 方式3产生方波OUT DX,AL; 完成3步走的第1步MOV DX,284H; 计数器0端口地址MOV AL,20; 写计数器0时常数OUR DX,AL; 完成3步走的第2步
MOV DX,287; 写计数器1控制方式字MOV AL,01010100B; 方式2 产生周期信号,低电平1*Tclk1OUT DX,AL; 完成3步走的第1步MOV DX,285H; 实常数为10,则可以用8位表示MOV AL, 10; 高电平(N-1)*Tclk1=9Tclk1OUT DX,AL; 完成3步走的第2步

xxxxxxxxxx; 8255三步走就是(1)对控制字写入;(2)读入端口数据;(3)写入端口数据。 总结就是 写、读、写MOV DX,0303H ;控制字端口地址MOV AL,10000011B;;根据上图写入方式,输入输出口OUT DX,AL ;写入固定模式
MOV DX,0302H; 找到C口的地址IN AL,DX ;读取C口的数据
MOV CL,4 ;需要左移4次SHL AL,CL ;逻辑左移MOV DX,0302H; 可以省略OUT DX,AL ; C口写入数据


; 8255三步走就是(1)对控制字写入;(2)读入端口数据;(3)写入端口数据。 总结就是 写、读、写MOV DX,8F07H ;1 控制方式的写入MOV AL,10010010BOUT DX,AL
REPEAT:MOV DX,8F03HIN AL,DX;读取B口的开关量XCHG AL,AH
MOV DX,8F01HIN AL,DX;读取A口的开关量XCHG AL,AH
MOV BL=0; 记录开关量中“1”的个数CLC ;清除Cy标志位MOV CX,16L1: SHR AX,1 ;逻辑右移,为了把最低位给cy ADC BL,0 ;带进位的加法,相当于BL=BL+0+Cy LOOP L1 ;循环的次数为CX,16次 MOV DX,8F07H ;3 C口写入MOV AL,BL ; 把开关量中“1”的个数给ALOUT DX,ALJMP REPEAT