当前位置: 代码迷 >> 单片机 >> 求汇编程序 急
  详细解决方案

求汇编程序 急

热度:85   发布时间:2016-04-28 16:17:51.0
求汇编程序 急急急急 十万火急
急求汇编程序     要求能实现输入,查找,统计,输出
如:输入一个字符串   查找有没有A(或60)要是有的话统计一共有几个A(或60)然后把结果输出    

二进制的数转换成十六进制(或十进制)以ASCII码输出
“进制的数转换成十六进制(或十进制)以ASCII码输出”意思是
输入一个字符串(是二进制的籽)   然后把二进制的数转换成十六进制(或十进制)以ASCII码输出     能满足两位数的这样输出就行

还有   数据传递问题      
如   A   DB   (..........)
      B   DB     ..........
                  ..........
合并后再传递给C     然后输出

------解决方案--------------------
DATA SEGMENT
VAR DB 23,34,45,60,90,00;00为结束
NUM DB 0 ;取一个变量
N EQU $-VAR
STR1 DB 'FIND! ', '$ '
STR2 DB 'NOFIND! ' '$ '
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BG: MOV AX,DATA
MOV DS,AX
MOV CX,N
LEA SI,VAR
NEXT:
CMP BYTE PTR[SI],00
JE FINDOVER ;检查是否结束查找
CMP BYTE PTR[SI],60 ;是否为A,
JNE NOEQ ;为不为A则转
INC NUM ;为A计数
NOEQ: INC SI
LOOP NEXT


FINDOVER:
CMP NUM,00 ;看看计数器里有没有值
JNE LP1 ;有A则转
MOV AH,9 ;没有A提示
LEA DX,STR2
INT 21H
JMP EXIT
LP1:
;假设最多9个
MOV AL,NUM ;显示个数
ADD AL,30H
MOV DL,AL
MOV AH,2
int 21H ;2号功能调用
MOV AH,9 ;输出提示
LEA DX,STR1
INT 21H
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END BG

;在你的程序基础上做的修改...
;没有调试工具,你还得自己试试哈