谁用汇编语言写过数据采集系统
请问 mov al,50000 怎么会报错
instruction operands must be the same size(指令操作数必须是相同的大小)
;堆栈段stack segment para stack 'stack' db 128 dup(?)stack endscode segment para public 'code'assume cs:code,ss:stack,ds:code;8259初始化(210H~217H)start: ;标号地址可随意写 mov al,13 ;13h=00010011h mov dx,210H ;ICW1 out dx,al ;将ICW1输出到偶地址端口 mov al,8 ;中断型号可改9 mov dx,211H ;ICW2 out dx,al ;将ICW2送入奇地址端口 mov al,1 ;1表示用于8位以上的微机 out dx,al ;ICW4 ;设置中断向量表 cli ;关中断 mov ax,0000H mov ds,ax lea ax,int0 ;int0中断服务首地址 mov ds:[4*8],ax ;设置中断便宜地址ip mov ax,cs mov ds:[4*8+2],ax ;设置中断段地址cs ;8255初始化(218~21FH) mov dx,21BH mov al,10011001b ;方式控制字,A入,C入,B出,方式0 out dx,al ;8253初始化(200H~207H) ;f=1MHZ, t=1us mov dx,203H mov al,00110110b ;设置控制字,01-计时器0,11-计数器锁存命令,011-工作方式,0-二进制 out dx,al mov dx,201H ;设置初始值 计数器1 mov al,50000 out dx,al ;低八位 mov al,ah out dx,al ;高八位 sti ;等待中断 abc:hlt jmp abc ;中断服务程序 int0 proc near cli mov dx,208H ;ADC0809地址->DX mov al,0 out dx,al call delay ;调用延时子程序 in al,dx ;读转换结果->al中 ;输出 mov dx,218H ;输出的端口A可以改为端口B、端口C out dx,al ;自动结束中断 mov dx,210H mov al,20H out dx,al sti ;开中断 iret ;中断返回 int0 endp delay proc near push cx mov cx,0F00H ;软件的延时时间还可以增加,0FFFH loop $ ;CX<-CX-1 pop cx ;出栈 ret ;从子程序返回 delay endp ;子程序结束 code ends ;代码段结束 end start ;结束汇编