微机原理,用汇编语言编写一个程序 统计正数、负数和零数据的个数的程序:DATA SEGMENTDATA1 DB 10,25,0,-4,.;此处楼主自己补齐100个数字ZERO DB 0PLUS DB 0NEGT DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,DATA1MOV CX,100AGAIN:MOV AL,[SI]CMP AL,0JNZ X1INC ZEROJMP NEXTX1:JNB X2INC NEGTJMP NEXTX2:INC PLUSNEXT:INC SILOOP AGAINMOV AH,4CHINT 21HCODE ENDSEND START
微机原理汇编语言程序指令计算MOV
微机原理与汇编语言 JMP START 就是一个死循环呗,跳转到START那句,为的是可以多次读取开关的状态。你要是想让这个程序执行一次就退出当然也可以跳转到别的地方,但是你没有定义STOP,就没办法JMP了.我估计你是不是把START这个标号理解成别的什么东西了,在这里START就是个标号,代表那句“MOV DX,01F2H”的地址,没有什么别的意思,并不是你所理解的\"程序开始\".程序写的肯定不对,问题很大,没有原题没法改,最起码你第一次IN之后得把AL保存一下吧,或者每次TEST AL之前重新IN一下,要不AL都让你给改了,你TEST它有什么用啊?之所以说没有原题没法改是因为如下原因:一 不知道开关Ki闭合对应的是0还是1,你的程序把我搞糊涂了.二 不知道你所谓的\"其他情况,不做任何处理\"是 真的什么都不做 还是 让二极管全都不发光三 假设开关闭合为1,那如果开关状态是11111010的话,我是应该让高四位的二极管发光呢还是什么都不做呢?按照我对题目的理解好像应该是让高四位发光,如果这样的话,楼上 zsq0325 同学的程序就有问题了,用CMP是不行的.