首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

哪位高手用汇编语言写过数据采集系统

2012-09-28 
谁用汇编语言写过数据采集系统请问 mov al,50000 怎么会报错instruction operands must be the same size(

谁用汇编语言写过数据采集系统
请问 mov al,50000 怎么会报错
instruction operands must be the same size(指令操作数必须是相同的大小)

Assembly code
    ;堆栈段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            ;结束汇编


[解决办法]
ax是只能存储16位的,al只能存8位,你的50000是多少位了
[解决办法]
改成:mov ax,50000 就可以了。

看你的代码,本来就应该用ax的,al可能是写错了。

热点排行