Archive for 八月, 2008

汇编各种跳转 j* 与 jmp*

汇编&逆向 | Posted by 老沙
8月 30 2008

名称 功能 操作数 操作码 模数 寄存器1 寄存器2 位移量 立即数 符号 方向 芯片型号 16位 32位
JO 溢出跳转 短 $70 无 无 无 无 10 无 无 8086 无 无
JNO 不溢出跳转 短 $71 无 无 无 无 10 无 无 8086 无 无
JB 低于跳转 短 $72 无 无 无 无 10 无 无 8086 无 无
JNB 不低于跳转 短 $73 无 无 无 无 10 无 无 8086 无 无
JE 相等跳转 短 $74 无 无 无 无 10 无 无 8086 无 无
JNE 不等跳转 短 $75 无 无 无 无 10 无 无 8086 无 无
JBE 不高于跳转 短 $76 无 无 无 无 10 无 无 8086 无 无
JA 高于跳转 短 $77 无 无 无 无 10 无 无 8086 无 无
JS 负号跳转 短 $78 无 无 无 无 10 无 无 8086 无 无
JNS 非负跳转 短 $79 无 无 无 无 10 无 无 8086 无 无
JP 奇偶跳转 短 $7A 无 无 无 无 10 无 无 8086 无 无
JNP 非奇偶跳转 短 $7B 无 无 无 无 10 无 无 8086 无 无
JL 小于跳转 短 $7C 无 无 无 无 10 无 无 8086 无 无
JNL 不小于跳转 短 $7D 无 无 无 无 10 无 无 8086 无 无
JNG 不大于跳转 短 $7E 无 无 无 无 10 无 无 8086 无 无
JG 大于跳转 短 $7F 无 无 无 无 10 无 无 8086 无 无
JO 溢出跳转 近 $0F80 无 无 无 无 10 无 无 386 无 $66
JNO 不溢出跳转 近 $0F81 无 无 无 无 10 无 无 386 无 $66
JB 低于跳转 近 $0F82 无 无 无 无 10 无 无 386 无 $66
JNB 不低于跳转 近 $0F83 无 无 无 无 10 无 无 386 无 $66
JE 相等跳转 近 $0F84 无 无 无 无 10 无 无 386 无 $66
JNE 不等跳转 近 $0F85 无 无 无 无 10 无 无 386 无 $66
JBE 不高于跳转 近 $0F86 无 无 无 无 10 无 无 386 无 $66
JA 高于跳转 近 $0F87 无 无 无 无 10 无 无 386 无 $66
JS 负号跳转 近 $0F88 无 无 无 无 10 无 无 386 无 $66
JNS 非负跳转 近 $0F89 无 无 无 无 10 无 无 386 无 $66
JP 奇偶跳转 近 $0F8A 无 无 无 无 10 无 无 386 无 $66
JNP 非奇偶跳转 近 $0F8B 无 无 无 无 10 无 无 386 无 $66
JL 小于跳转 近 $0F8C 无 无 无 无 10 无 无 386 无 $66
JNL 不小于跳转 近 $0F8D 无 无 无 无 10 无 无 386 无 $66
JNG 不大于跳转 近 $0F8E 无 无 无 无 10 无 无 386 无 $66
JG 大于跳转 近 $0F8F 无 无 无 无 10 无 无 386 无 $66
JO 溢出跳转 近 $0F80 无 无 无 无 10 无 无 386 $66 无
JNO 不溢出跳转 近 $0F81 无 无 无 无 10 无 无 386 $66 无
JB 低于跳转 近 $0F82 无 无 无 无 10 无 无 386 $66 无
JNB 不低于跳转 近 $0F83 无 无 无 无 10 无 无 386 $66 无
JE 相等跳转 近 $0F84 无 无 无 无 10 无 无 386 $66 无
JNE 不等跳转 近 $0F85 无 无 无 无 10 无 无 386 $66 无
JBE 不高于跳转 近 $0F86 无 无 无 无 10 无 无 386 $66 无
JA 高于跳转 近 $0F87 无 无 无 无 10 无 无 386 $66 无
JS 负号跳转 近 $0F88 无 无 无 无 10 无 无 386 $66 无
JNS 非负跳转 近 $0F89 无 无 无 无 10 无 无 386 $66 无
JP 奇偶跳转 近 $0F8A 无 无 无 无 10 无 无 386 $66 无
JNP 非奇偶跳转 近 $0F8B 无 无 无 无 10 无 无 386 $66 无
JL 小于跳转 近 $0F8C 无 无 无 无 10 无 无 386 $66 无
JNL 不小于跳转 近 $0F8D 无 无 无 无 10 无 无 386 $66 无
JNG 不大于跳转 近 $0F8E 无 无 无 无 10 无 无 386 $66 无
JG 大于跳转 近 $0F8F 无 无 无 无 10 无 无 386 $66 无
JCXZ 计数一六零跳转 位移8 $E3 无 无 无 无 10 无 无 8086 无 $67
JECXZ 计数三二零跳转 位移8 $E3 无 无 无 无 10 无 无 386 $67 无
JMP 跳转 寄16 $FF 11 100 3 无 无 无 无 8086 无 $66
JMP 跳转 寄32 $FF 11 100 3 无 无 无 无 386 $66 无
JMP 跳转 16[寄16] $FF 00 100 5 无 无 无 无 8086 无 $6766
JMP 跳转 32[寄16] $FF 00 100 5 无 无 无 无 386 $66 $67
JMP 跳转 16[寄32] $FF 00 100 5 无 无 无 无 386 $67 $66
JMP 跳转 32[寄32] $FF 00 100 5 无 无 无 无 386 $6766 无
JMP 跳转 16[寄16+位移8] $FF 01 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 32[寄16+位移8] $FF 01 100 5 9 无 无 无 386 $66 $67
JMP 跳转 16[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $67 $66
JMP 跳转 32[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $6766 无
JMP 跳转 16[寄16+位移16] $FF 10 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 32[寄16+位移16] $FF 10 100 5 9 无 无 无 386 $66 $67
JMP 跳转 16[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $67 $66
JMP 跳转 32[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $6766 无
JMP 跳转 近16[寄16] $FF 00 100 5 无 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16] $FF 00 100 5 无 无 无 无 386 $66 $67
JMP 跳转 近16[寄32] $FF 00 100 5 无 无 无 无 386 $67 $66
JMP 跳转 近32[寄32] $FF 00 100 5 无 无 无 无 386 $6766 无
JMP 跳转 近16[寄16+位移8] $FF 01 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16+位移8] $FF 01 100 5 9 无 无 无 386 $66 $67
JMP 跳转 近16[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $67 $66
JMP 跳转 近32[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $6766 无
JMP 跳转 近16[寄16+位移16] $FF 10 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16+位移16] $FF 10 100 5 9 无 无 无 386 $66 $67
JMP 跳转 近16[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $67 $66
JMP 跳转 近32[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $6766 无
JMP 跳转 远16[寄16] $FF 00 101 5 无 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16] $FF 00 101 5 无 无 无 无 386 $66 $67
JMP 跳转 远16[寄32] $FF 00 101 5 无 无 无 无 386 $67 $66
JMP 跳转 远32[寄32] $FF 00 101 5 无 无 无 无 386 $6766 无
JMP 跳转 远16[寄16+位移8] $FF 01 101 5 9 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16+位移8] $FF 01 101 5 9 无 无 无 386 $66 $67
JMP 跳转 远16[寄32+位移8] $FF 01 101 5 9 无 无 无 386 $67 $66
JMP 跳转 远32[寄32+位移8] $FF 01 101 5 9 无 无 无 386 $6766 无
JMP 跳转 远16[寄16+位移16] $FF 10 101 5 9 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16+位移16] $FF 10 101 5 9 无 无 无 386 $66 $67
JMP 跳转 远16[寄32+位移32] $FF 10 101 5 9 无 无 无 386 $67 $66
JMP 跳转 远32[寄32+位移32] $FF 10 101 5 9 无 无 无 386 $6766 无
JMP 跳转 短 $EB 无 无 无 无 10 无 无 8086 无 无
JMP 跳转 位移16 $E9 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 位移32 $E9 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 近 $E9 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 近 $E9 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 远(数段址:)偏移16 $EA 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 远(数段址:)偏移32 $EA 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 数段址:偏移16 $EA 无 无 无 无 12 无 无 8086 无 $66
JMP 跳转 数段址:偏移32 $EA 无 无 无 无 12 无 无 386 $66 无
JMPE 跳转扩展 寄16 $0F00 11 110 3 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 寄32 $0F00 11 110 3 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16] $0F00 00 110 5 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16] $0F00 00 110 5 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32] $0F00 00 110 5 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32] $0F00 00 110 5 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16+位移8] $0F00 01 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16+位移8] $0F00 01 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32+位移8] $0F00 01 110 5
9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32+位移8] $0F00 01 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16+位移16] $0F00 10 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16+位移16] $0F00 10 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32+位移32] $0F00 10 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32+位移32] $0F00 10 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 位移16 $0FB8 无 无 无 无 10 无 无 IA64 无 $66
JMPE 跳转扩展 位移32 $0FB8 无 无 无 无 10 无 无 IA64 $66 无

_________________________________________________________

条件码:
①OF(Overflow Flag)溢出标志。溢出时为1,否则置0。
②SF(Sign Flag)符号标志。结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志。结果操作数中1的个数为偶数时置1,否则置0.

控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。

二、 直接标志转移(8位寻址)

指令格式 机器码 测试条件 如…则转移  
  指令格式 机器码 测试条件 如…则转移
JC 72 C=1 有进位 JNS 79 S=0 正号
JNC 73 C=0 无进位 JO 70 O=1 有溢出
JZ/JE 74 Z=1 零/等于 JNO 71 O=0 无溢出
JNZ/JNE 75 Z=0 不为零/不等于 JP/JPE 7A P=1 奇偶位为偶
JS 78 S=1 负号 JNP/IPO 7B P=0 奇偶位为奇

三、间接标志转移(8位寻址)

指令格式 机器码 测试格式 如…则转移
JA/JNBE(比较无符号数) 77 C或Z=0 >  高于/不低于或等于
JAE/JNB(比较无符号数) 73 C=0 >=  高于或等于/不低于
JB/JNAE(比较无符号数) 72 C=1 <  低于/不高于或等于
JBE/JNA(比较无符号数) 76 C或Z=1 <=  低于或等于/不高于
JG/JNLE(比较带符号数) 7F (S异或O)或Z=0 >  大于/不小于或等于
JGE/JNL(比较带符号数) 7D S异或O=0 >=  大于或等于/不小于
JL/JNGE(比较带符号数) 7C S异或O=1 <  小于/不大于或等于
JLE/JNG(比较带符号数) 7E (S异或O)或Z=1 <=  小于或等于/不大于

四、无条件转移指令(fisheep译 fisheep@sohu.com)

操作码 伪码指令 含义
EB  cb JMP rel8 相对短跳转(8位),使rel8处的代码位下一条指令
E9  cw JMP rel16 相对跳转(16位),使rel16处的代码位下一条指令
FF  /4 JMP r/m16 绝对跳转(16位),下一指令地址在r/m16中给出
FF  /4 JMP r/m32 绝对跳转(32位),下一指令地址在r/m32中给出
EA  cb JMP ptr16:16 远距离绝对跳转, 下一指令地址在操作数中
EA  cb JMP ptr16:32 远距离绝对跳转, 下一指令地址在操作数中
FF  /5 JMP m16:16 远距离绝对跳转, 下一指令地址在内存m16:16中
FF  /5 JMP m16:32 远距离绝对跳转, 下一指令地址在内存m16:32中

五、16位/32位寻址方式(fisheep译 fisheep@sohu.com)

操作码 伪码指令 跳转含义 跳转类型 跳转的条件(标志位)
0F 87  cw/cd JA rel16/32 大于 near (CF=0 and ZF=0)
0F 83  cw/cd JAE rel16/32 大于等于 near (CF=0)
0F 82  cw/cd JB rel16/32 小于 near (CF=1)
0F 86  cw/cd JBE rel16/32 小于等于 near (CF=1 or ZF=1)
0F 82  cw/cd JC rel16/32 进位 near (CF=1)
0F 84  cw/cd JE rel16/32 等于 near (ZF=1)
0F 84  cw/cd JZ rel16/32 为0 near (ZF=1)
0F 8F  cw/cd JG rel16/32 大于 near (ZF=0 and SF=OF)
0F 8D  cw/cd JGE rel16/32 大于等于 near (SF=OF)
0F 8C  cw/cd JL rel16/32 小于 near (SF<>OF)
0F 8E  cw/cd JLE rel16/32 小于等于 near (ZF=1 or SF<>OF)
0F 86  cw/cd JNA rel16/32 不大于 near (CF=1 or ZF=1)
0F 82  cw/cd JNAE rel16/32 不大于等于 near (CF=1)
0F 83  cw/cd JNB rel16/32 不小于 near (CF=0)
0F 87  cw/cd JNBE rel16/32 不小于等于 near (CF=0 and ZF=0)
0F 83  cw/cd JNC rel16/32 不进位 near (CF=0)
0F 85  cw/cd JNE rel16/32 不等于 near (ZF=0)
0F 8E  cw/cd JNG rel16/32 不大于 near (ZF=1 or SF<>OF)
0F 8C  cw/cd JNGE rel16/32 不大于等于 near (SF<>OF)
0F 8D  cw/cd JNL rel16/32 不小于 near (SF=OF)
0F 8F  cw/cd JNLE rel16/32 不小于等于 near (ZF=0 and SF=OF)
0F 81  cw/cd JNO rel16/32 未溢出 near (OF=0)
0F 8B  cw/cd JNP rel16/32 不是偶数 near (PF=0)
0F 89  cw/cd JNS rel16/32 非负数 near (SF=0)
0F 85  cw/cd JNZ rel16/32 非零(不等于) near (ZF=0)
0F 80  cw/cd JO rel16/32 溢出 near (OF=1)
0F 8A  cw/cd JP rel16/32 偶数 near (PF=1)
0F 8A  cw/cd JPE rel16/32 偶数 near (PF=1)
0F 8B  cw/cd JPO rel16/32 奇数 near (PF=0)
0F 88  cw/cd JS rel16/32 负数 near (SF=1)
0F 84  cw/cd JZ rel16/32 为零(等于) near (ZF=1)

注:一些指令操作数的含义说明:
  rel8 表示 8 位相对地址
  rel16 表示 16 位相对地址
  rel16/32 表示 16或32 位相对地址
  r/m16 表示16位寄存器
  r/m32 表示32位寄存器

关于使用MASM的技巧

汇编&逆向 | Posted by 老沙
8月 29 2008

Win32 API的调用
参考《Microsoft Win32 Programmer's Reference》
____________________________________________________________________
例如调用messagebox
原型如下MessageBox proto hwnd:dword,lptext:dword,lpCaption:dword,uType:dword
(MessageBox proto :dword,:dword,:dword,:dword 效果同上)
调用:
push uType
push lpCaption
push lpText
push hWnd
call MessageBox

简单的invoke语句
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
如果参数数量和声明不符,会报错
error A2137:too few arguments to INVOKE
返回值在EAX中,如果EAX无法容纳,则EAX中是一个缓冲区地址.
_____________________________________________________________________

MASM关于标号@@
_____________________________________________________________________

防止过多的标号起名代来不便可以用@@,@F,@B来控制

cmp flag,1
jz @F
mov cx,1000h
@@:

loop @B

@F是向后跳,@B是向前跳,他们只找到最近的@@,所以最好@@与跳转指令的距离限制在同一屏
______________________________________________________________________

MASM的伪指令assume
______________________________________________________________________

mov esi,offset stWndClass
assume esi:ptr WNDCLASS
mov eax,[esi].lpfnwndproc
……
assume esi:nothing

______________________________________________________________________

MASM获区变量地址
______________________________________________________________________

对于全局变量

mov 寄存器,offset 变量名

对于局部变量

lea eax,[ebp-4]

但是无法在invoke中用,所以有这个addr伪指令
addr 局部变量或全局变量
只能用在invoke中

invoke test,eax,addr szHello
;反编译后
lea eax,[ebp-4]
push eax ;参数2 addr szHello
push eax ;参数1 eax
call test

可以看出参数1的eax被覆盖了,所以在invoke中用到addr时,左侧不能用到eax
不小心用到了MASM会报错: error A2133:register value overwritten by INVOKE
_____________________________________________________________________

关于变量和函数的命名
_____________________________________________________________________

"匈牙利表示法"格式是类型前缀加上变量的说明.
b 表示 byte
w 表示 word
dw 表示dword
h 表示句柄
lp 表示指针
sz 表示以0结尾的字符串
lpsz 表示以0结尾的字符串的指针
f 表示浮点数
st 表示一个数据结构

例:
hWinMain 主窗口句柄
dwTimeCount 时间计数器,以双字定义
_____________________________________________________________________

音响相关知识总汇(二)

个人的心情空间 | Posted by 老沙
8月 14 2008

功率放大器的基本电路形式

1.晶体管功率放大器
1.1甲类放大器:工作于晶体管的线性放大区的中点,它的工作效率一般小于50%,工作时晶体管始终工作于线性放大状态,在整个工作期间均处于导通状态。甲类放大器只适用于一般功率的放大电路中,特点是瞬态失真较小,无交越失真,重放声音质较好,但非线性失真较大,低频特性较差。甲类放大电路是目前使用较多的放大电路之一。如图
uploads/200808/14_220820_a.jpg
1.2滑动甲类放大器
随信号幅度的变化而变化,静态工作点加偏移于截止区,其工作效率也小于50%。滑动甲类放大器的静态工作点较低,从而使小信号放大的功耗下降,处于大信号放大时类似于甲类放大器,其缺点是失真较大,低频特性较差。

1.3乙类放大器
乙类放大器工作效率较高,达70%左右,由于乙类放大器的两只管子是交替进行工作,在两只管子对信号的交替过程中,存在一定的非线性失真(也叫交越失真)因此重放声音质较一般。如图
uploads/200808/14_220844_b.jpg
1.4甲乙类放大器
当两只管子轮流工作时,相互交零比较平滑,消除了交越失真。甲乙类放大器静态功耗较小,输出功率随输入信号的大小变化,工作效率较高。如图
uploads/200808/14_220902_c.jpg
1.5超甲类放大器
两只管子进行交替推挽工作,管子的静态工作点选择于截止区附近,输出功率随输入信号幅度的变化而变化,效率较高。无交越失真,重放声的音质也较好。

1.6乙丙类放大器
由乙类和丙类工作状态的两个部分串联而成。输入信号幅度较小时,由乙类放大器工作,当输入幅度较大时,由丙类放大器进行放大,这样可将电源的等效电压提高一倍,使用路的瞬态响应较好。乙丙类放大器的失真较小,工作效率高于乙类放大器,但电路结构较为复杂。

功率放大器与扬声器之间连接方式不同功率放大器常见电路形式。

1.7 OTL功率放大器
真流工作电压较高时,可以获得较大的输出功率;工作效率较高;频率响应较好,负载的阻抗要求不高。
uploads/200808/14_221015_otl.jpg
1.8 OCL功率放大器
无输出耦合电容,使放大得放的低频得到了一定的扩展;采用正负电源供电,在较低的供电电压的情况下,可以获得较大的功率输出;对负载的阴抗要求不高。OCL应设有专用保护电咱或保险丝对扬声器进行保护OTL放大电路由于有输出耦合电容的隔直流作用,因此当电路出现故障时不会烧毁扬声器和放大管。如图
uploads/200808/14_220953_ocl.jpg
1.9 BTL功率放大器
电源供电电压相同的情况下,扬声器所得到的电压比其它类型的放大器高出一倍,输出功率可以增大4倍,电路结构较为对称,而信号的失真较小。如图
uploads/200808/14_221036_btl.jpg

音响相关知识总汇(一)

个人的心情空间 | Posted by 老沙
8月 14 2008

器材的购入:
http://store.taobao.com/shop/view_shop-c924adcb41e7fdf403272cd04352eee3.htm
http://store.taobao.com/shop/view_shop-bff6c0c415b8e175d272dfa14376d52f.htm
http://store.taobao.com/shop/view_shop-9b9f11359678678386135092fe5eac7d.htm
http://store.taobao.com/shop/view_shop-0d299fd65ae9b16b374a7a1ebb647413.htm
http://store.taobao.com/shop/view_shop-a23ed40d359c789850543be99dbad099.htm
北京店
http://shop33602380.taobao.com/
http://store.taobao.com/shop/view_shop-b56c04085b7366d826bf6b47f8ce41b2.htm
http://shop33080710.taobao.com/
相关图书:
1.实用功放DIY:ftp://ftp.aafox.com/hifidiy/DIY.rar
1.IC资料:
LM1875:ftp://ftp.aafox.com/hifidiy/LM1875_www.kumouse.com.pdf
LM1876:ftp://ftp.aafox.com/hifidiy/LM1876_www.kumouse.com.pdf
LM3886:ftp://ftp.aafox.com/hifidiy/3886_www.kumouse.com.pdf
TDA7294:ftp://ftp.aafox.com/hifidiy/TDA7294_www.kumouse.com.pdf
相关知认:

1. 业余条件下,功率放大器的额定输出功率可以通过以下两个公式

进行换算:
额定输出功率=最大输出功率 X 0.8
额定输出功率=峰值功率 X 0.5

2. 功率放大器的类别特点
2.1 晶体管功率放大器:“石机”和电子管相比,有数码声
2.2 电子管功率放大器:重放声温暖通透,低频柔和,高频亮而不刺,让人难以忘怀,一些资深的音响发烧友一直使用着它。但是一些制作高手仿制名机时始终无法获得与原机相同的音色的根源在于输出变压器。
2.3 场效应管功率放大器:场效应管不公具有晶体管的优点,还具有电子管的特点,重放声具有电子管的音色等等点,频率响应一般为20HZ~20KHZ(+-1dB),失真度为0.05%以下,因此目前较为流行的是场效应管功率放大器。
2.4 电子管与晶体管混合功率放大器:一般用于中高档的产品中,多数胆石机的前级采用电子管,后级采用晶体管。胆石机的声音表现方面较全面,重放的音色介于电子管与晶体管之间。
2.5 集成电路功率放大器:集成电路功率放大电路主要有二类,即厚膜集成电路和运算放大集成电路。随着NE5532,NE5534,M5128等高品运算放大集成电路的出现,在一些音响器村中开始大量使用运算放大集成电路。厚膜集成电路如:STK4191,STK465等
2.6 AV功率放大器

3.功率放大器的制作基础
常用音响无件的识别和检测
1电阻器:按用途分为普通型电阻,和特殊型电阻。按材料分为炭膜电阻,金属膜电阻,合成膜电阻等,功率放大器中使用最多的是炭膜电阻和金属膜电阻。常见电阻器分类的字母和数字含义见图一
uploads/200808/09_230443_1.jpg

图二
uploads/200808/09_230504_2.jpg

电阻器应选择接近计算值的一个标称值,电阻器的额定功率应选用比实际承受功率大1.5~2倍的,才能保证耐用可靠。大于10瓦的电阻器,应保证有散热空间。电阴器装入电路之前,要核实一下阻值。
2电位器:电位器的输出函数特性分:线性电位器,对数式电位器,指数式电位器。线性电位器主要用于前置放大器中左右声道平衡控制电路。对数式Z型电位器主要用于前置放大器中的音量控制。人耳听觉具有对数特性。D型主要用于前置放大器的音调控制电路。步进式电位器用于音量调节。电位器的主要参数,标称阻值,额定功率和运动噪声。

3电容器:瓷介电容。属于无机介质电容。体积小,性能稳定,不易老化。在音响设备中用于高频电路,反馈电路与退耦电路。云母电容,无机介质电容,介质损耗小,绝缘电阴高,耐高温,一般用于音响设备中的振荡电咱及低通滤波器,缺点是较容易受潮。有机薄膜电容。介质不同分为涤纶电容,聚苯乙烯电容,聚丙烯电容和聚乙烯电容。涤纶电容适合于作为耦合,滤波。聚苯乙烯电容具有容量稳定。精度高,温度系数的特点,适用于音响电路中作耦合,滤波旁路之用。聚丙烯电容绝缘电阻大,容量的精度高,缺点是体积较大,价格高,它是制作音响设备的理想电容,在一些音响发烧友中,常使用聚丙烯电容对已有的音响设备进行升级改造。聚乙烯电容主要是耐高温,损耗小,等,在音响设备中可用作电路的耦合

电容。电容器的字母所代表的介质含义如图三
uploads/200808/09_230529_3.jpg

_______________________________________________________________________

电容器的主要参数:1额定工作电压。2标称容量和允许误差。3绝缘电阻。4绝缘耐压。5电容器的损耗:电导损耗,极化损耗,电离损耗。
电容的选用:低频耦合,旁路等场合,电气特性相应要求较低,可采用普通电容器等;在高频电路和高压电路中,应选用云母电容器和瓷介电容器等;在电源滤波和退耦电路中,可选用电解电容器。大多数情况下,在退耦,低频耦合等电路中选用的电容器可比要求值略大即可,但是在振荡回路,延时电路,音调控制电路中,电容器的容量应尽可能和计算值一致。在各种滤波器以及各种网络中,电容器的数值则要求非常精确,其误差位应小于+-0.3%~0.5%。
4变压器
变压器的主要特性:变压比。隔直流通交流。变压器的损耗。
5晶体二极管
国外晶体管

的命名方法图四
uploads/200808/11_225721_4.jpg
图五
uploads/200808/11_225739_5.jpg
晶体二极管的主要特性:单向导电性。V-A特性。管压降:硅晶体二极管的管压降为0.6~0.7V左右,锗晶体二极管的管压降为0.2V左右。晶体二极管的主要参数:最大整流电流。反向电流。
6稳压二极管
稳压二极管在电流和电压不超过范围便不会损坏,因此稳压二极管具有稳压作用。稳压二极管的主要参数:稳压值。最大稳定电流。最大允许耗散功率。二极管的检测:两次量电阻值较小的一次,黑表笔搭接的引脚是正极,红的为负极。
7晶休三极管
材料划分为:硅晶体管和锗晶体管;极性划分:PNP管和NPN管;用途分:普通管和低噪高放管,功率放大管,高频管,开关管,等。晶体三极管的主要特性:晶体三极管的放大条件。晶体三极管的三种工作状态,Ic=BIb放大状态,基极电流的变化会引起集电极电流的变化,饮和状态是Ib很大时Ic几乎不再增大,截止状态是Ib=0,Ic=0,管子的发射结和集电结均为反向偏置。
晶体三极管的主要参数:电流放大系数。极间反向电流。极限参数。晶体管的检测:基极,将红表笔搭其中一脚,用黑表笔搭接别外两个引脚,测出两个电阴值如果两个电阻值均较小,红表笔所搭接的管脚是PNP型晶体管的基极,如测得两个电阻值较大,则红表笔所搭接的引脚为NPN型晶体三极管管的基极。集电极的识别,将万用表置于100欧,用嘴含住基极,用两个表笔分别搭另外两个引脚,PNP电阻值较小的一次,红表笔所搭接的为集电极,对于NPN型晶体管,电阴值较小的一次,黑表笔所接的引脚为集电极。
8场效应管
场效应管的主要特性:输入电阻特性。输入电阻很大,可达10^8殴以上,而绝缘栅型场效应管更高。输入电阻大可减轻前级输入放大器及信号源的负载,这是场效应管的优点之一。电压控制特性。场效应管与晶体三极管最大的区别就是前者是电压控制器件,后者是电流控制器件。栅极偏置特性。场效应管和晶体三极管一样,均需要给其适当的偏置电压才能使其正常进入状态,即需要给场效应管的栅,源极之间加上一个偏置电压。
场效应管的主要参数:直流参数。交流参数:漏极电流的变化量与栅源极电压变化量之比,与晶体三极管的电流放大倍数相似。
场效应管的选用:漏极电流应按电路要求来选择,能满足功耗就行,一味用漏极电流较大的管子,会使栅原极的电容增大,影响电路的频响,使重放声变劣。选配对的场效应管时,最好选同一厂家且同批号的管子。配对管的夹断电压和跨导最好一致,有条件的制作者可选择专用音响对管。
场效管使用的注意事项:由于场管的输入阴抗高,其栅极易感应电荷并积累后产生很高的电场,将栅极击穿,因此当管子不用时,必须将管的所有电极短路。在焊接时电烙铁的外壳必须可靠地接地,焊接的顺序应分为源极,漏极,栅极。绝缘栅型场效管和结型场效管的源极和漏极是对称的,两极可以互换使用,如果管子的内部已将衬底与源极短接,刚源,漏两极不可互换。在调整放大电路时,应注意电路的增益不可过高,以免电路工作于较深的正反馈,产生自激面损坏管子。
场效管的识别及检则,用红笔接其中一个脚,记录下测出的两个数值,再用红笔接别两个,得出三组数值,如果在三组数值中有一组的阻值为无穷大(为N沟道管)或5~10K殴(为P沟道管),就说明红表笔所接的引脚为栅极,剩下的两个为漏,源极。
9电子管
电子管的类别:太多了不写了。电子管和晶体管一样可以对信号进行放大,它主要有二极管和三极管二种,另外还派生出四极管,五极管和束射四极管。电子二极管由屏极,也可叫阳极或板极,和阴极组成,屏极用字母A代表,阴极用字母K代表。阴极分为两种,一种为直热式,另一种叫旁热式。电子三极管。如果在电子三极管的栅极上加上一个交变的信号,栅压将随交流信号电压的变化而变化。
电子管的选用:自己动手制作电子管功率放大器,应选性能优越,放大效率高,适应性强,价格适当。对于选择功率放大管来说,首选束射四极管与五极功率电子管,如6P3P,6L6,EL34,6CA7,KT88等,对于前级放大管来说,应选择双三极电子管来担任,这样可以收到事半功倍的效果。其型号有6N1,6N2,6N8P,6N9P,6N11,12AU7,12AX7等,生产厂有长沙曙光电子管厂,北京电子管厂,南京电子管厂,上海电子管厂等。在选择末极功放管时,最好选择同一厂家,同一牌号与同一时期的产品,必须着重考虑其放大效率的一致性,特别是作推挽放大时,两管放大效率如果相差较大,会导致推挽放大不平衡,从而引起输出的失真。在先择前置极,应选取择无漏电现象,无微音效应的电子管,因为功放机的放大倍数极高,前级电子管如果存在微小的杂声,经多级放大后会相当严重。电子管本身存在的小毛病是无法维修的,只有更换才行。
使用电子管时的注意事项:使用电子管放大器时,严禁输出端不接负载,或使载短路,以免损坏放大管。使用电源应控制在额定工作电压的5%以内,以免电压过高或过低而减少电子管的使用寿命。禁止将水等液体洒到管子上,以免管子爆裂。在机器工作进,或关机后20分钟内不可振机机器。电子管放大器在工作时温度较高,应注意机器周围的通风。
10达林顿管
所谓达林顿管是将两只或多只PNP,NPN型晶体三极管进行复合后形成的,达林顿管的最大特点是具有较高的放大倍数,复合的三极管越多,放大倍数越高,最高的达林顿管放大倍数可达几万倍。但是工作时的稳定性较差,如果用在功率放大器末极输出,其重放声感觉是低量感好,便解析度一般,音响器材中还较少用达林顿管。
11集成电路
集成电路的特点:集成电路内部的各级放大器之间一般采用直接耦合的方式,但是这样做使温度变化而产生的参数变化只会局限于某一级,放大器与放大器的级与级之间不会产生相互的影响,为了克服这一缺点,在集成电路中采用了差动放大器,电平移动电路及互补电路等手段,使集成电路在工作时性能稳定。集成电路内不能制作大容量电容和大阻值电阻。集成电路内无晶体二极管,利用集成电路内部的晶体三极管的发射结或集电结来代替晶体二极管。
12散热片
散热型材一般用于专业的功率放大器中,它是用铝镁合金挤压而成。可根据电路需要对型材进行任意切割,一般长10CM长的散型材可耗散60W左右的热量。
13继电器
主要用于功率放大器中主要起保护扬声器的作用。继电器的主要参数有吸合电压和接点工作电流。继电器的工作电压有3V,5V,6V,9V,12V等,一般为吸合电压的1.5倍左右,而释放电压是吸合电压的30%左右。

构建汇编的工作环境

汇编&逆向 | Posted by 老沙
8月 12 2008

第一: 安装常用软件,包括Editplus,MSDN,Hexedit,Resource Workshop,调式工具Soft-ice和W32DASM等
第二:选择一个驱动器安装MASM32软件包,bin目录中有汇编编译器ML.exe,资历源编译器rc.exe和链接器Link.exe 等文件;include目录中有各种头文件,lib目录中有有全部导入库.MASM32自动把安装目录名定为masm32,如果不满意可以把这3个关键目录拷到别的自己命名的目录中,对使用没有任何影响.
第三:建立源文件目录,汇编一个项目有多个文件,如果把多个项目混在一起将无法分辩,所以必须为每个项目单独建立一个目录,建意把源程序放在一个专门的目录里.
第四:由于masm32软件包中没有nmake.exe文件,所以要单独寻找nmake.exe并拷到bin目录中.
第五:为这个环境建立一个设置环境变量的批处理文件,假设文件名为ssj.bat,那么这个文件内容如下:
@echo off
set include=x:masm32include
set lib=x:masm32lib
set path=x:masm32bin;%path%
echo on

EditPlus是一个很好用的编辑软件,我加入了ASM的格式模板,适合ASM的开发
ResourceBuilder是一个资源编辑工具.

MASMPlus与RadASM两个IDE开发工具

待写……..

相关下载:
masm32v8下载:
地址1:点击下载
地址2:点击下载
Resource workshop下载:
地址1:点击下载
地址2:点击下载
make下载:
地址1:点击下载
地址2:点击下载
EditPlus下载:
地址1:点击下载
地址2:点击下载
ResourceBuilder下载:
地址1:点击下载
地址2:点击下载
MASMPlus
地址1:点击下载
地址2:点击下载
RadASM2.2.1.1汉化版
地址1:点击下载

NTSwitch 解决 XP 共享 10连接数限制

其它工具 | Posted by 老沙
8月 06 2008

就是可以把XP变成server的东西,修改了系统内核,由于XP版本不同,安完后有可能会蓝屏.所以请慎用,我试过,成功过也失败过,呵呵:)
点击下载

MYIE 监控IE上网记录 MYSQL记录 有查询器 适用于网吧 或 公司使用

Delphi天空 | Posted by 老沙
8月 04 2008

今天发布一个我写的一个IE监控程序,写起来真累,本打算把查询做成一个网站的,由于时间问题没有做,只写了一个查询程序,有空再写个网站查询的方式,用起来也方便,有IE就OK了:) 下边说正题了

程序的组成:一共有四个文件,和两个批处理,外加一个MYSQL数据库。
libmySQL.dll和MYIE.dll是完成客户机向服务器发送数据的。libmysql.dll大家也许不陌生,对~他就是mysql的API,MYIE.dll是我写的IE的插件。MYIECONFIG.exe是配置MYIE.dll所需参数的工具。

MYIESEE.exe是查看别人上网记录的工具,就是上边所说的查询网站的替代品,网站嘛,以后再说:)
两个批处理分别是install.bat是注册MYIE.dll这个插件用的,uninstall.bat是取消注册。

安装方法:
1. 服务器的安装:下载MYIESERVER.rar,把它放在磁盘空间较大的分区,鼠标右键,选择将文件解压缩到MYIESERVER/,然后进入MYIESERVER目录,运行'安装amp.bat'这个文件,稍等一会,直到屏幕出现,图一
uploads/200808/05_213622_1.jpg
这里输入用户名和密码,用户名用root(最好用这个,否则你要手动更改配置文件),密码随便(不要用空密码,这样不安全)但一定要记住,后边的网页就是网站服务器的页面表示网站服务器安装成功,不要急,再往下边看看见图二
uploads/200808/05_213710_2.jpg
表示MYSQL数据库也安装成功,好像大功告成了!!~~~~不~~还没有完。还要对MYSQL进行一下设置,方法很简单找到C:windowsmy.ini这个文件,用写字板打开(不要用记事本)
然后再打开刚才安装服务器的 MYIESERVERampmysql3mysqlconfig.txt,把里边的内容全选复制下来,找到MY.ini 文件中的#set-variable=key_buffer=16M这一行,把mysqlconfig.txt里的内容粘到这里保存
如图三
uploads/200808/05_213756_3.jpg
然后重启MYSQL就可以了,如果不会重启MYSQL,从启电脑也行呀。然后在安装MYIESERVER的磁盘的根目录会出现一个www的文件夹,把MYIESERVER目录下的www目录里的全部内容复制到根目录的WWW文件夹里,如果在本机打开,IE输入http://localhost/phpmyadmin在其它电脑上就把localhost用IP地址代替,会出现图四
uploads/200808/05_213856_4.jpg
还记得你刚才安装时输过的用户名用root和密码吗?对输进去,就会出现图五
uploads/200808/05_213927_5.jpg
在这里就可以管理你的MYSQL数据库了。

2. 客户机的安装:下载MYIE压缩包后,解压出来,运行MYIECONFIG.exe把服务器的IP,用户名,密码,输入(如果你没有加入新的用户名和密码请使用 用户名:look密码:123456)然后点修改就行了.
把libmySQL.dll和MYIE.dll复制到c:windowssystem32目录下,然后运行install.bat然后显示注册成功即可(如果服务器运行不正常,在打开IE的时候会出现提示)如果一切正常就算完工了。
你也可以打开IE->工具->管理加载项 中看到图六
uploads/200808/05_215156_6.jpg
表示MYIE安装成功,然后用MYIESEE查询记录就可以了
(如果没有自己加新的远程用户,也使用用户名:look密码:123456)

2008年8月5日 MYIE和MYIESEE更新到了V1.1版,优化了数据库的连接。

关于PHPMYADMIN的使用其实很简单,看看就会了,如果还是不会就上网查查。

再发两个图
图七是MYIESEE.exe普通模式下的查找,图八是MYIESEE.exe高级模式的查找,高能模式多了按IP和MAC地址查询的功能,并且结果显示IP和MAC地址

uploads/200808/04_231942_see1.jpg
uploads/200808/04_232150_see2.jpg
ftp://ftp.aafox.com/
程序下载地址:
地址1: 点击下载MYIE.RAR
地址2:ftp://ftp.aafox.com/MYIE.rar
MYSQL数据库下载:
ftp://ftp.aafox.com/MYIESERVER.rar
本站开通了匿名FTP空间
ftp://ftp.aafox.com/
在这里也可以找到你想要的东西

也可以到天空软件站下载
http://www.skycn.com/soft/47403.html