用汇编语言怎么编写下面几个程序啊?

来源:百度知道 编辑:UC知道 时间:2024/05/20 07:35:05
1、请编一程序,要求先显示“INPUT A NUMBER:1—9”提示信息,再从键盘接受一个个位数N,然后响铃N次(响铃ASCII码为07H)。不是1—9数字则不响铃,跳转到等待正确输入。

2.编程实现键盘输入4个十六进制数(如 1B9D)存入字单元DATA1中。(键盘输入到计算机的是ASCII码)

3.编程序把AX中的16进制数转换成ASCII码,依次存放到MEM数组中的四个单元中。例如,当AX=2A49H时,程序执行完后,MEM开始的四个单元内容为39H,34H,41H,32H。

4、若ARRAY 和 MAX都定义成字变量,并在ARRAY字数组中存放10个16位有符号数,找出最大数并把其存入变量MAX中。

5、试编一程序,比较数组ARRAY中的三个16位数,实现以下要求:
(1)如果三个数都相等则显示 3;
(2)如果三个数都不相等则显示 0;
(3)如果三个数有两个相等则显示 2。

6.假定AL中的值为00H—63H的二进制数据,请编一汇编语言程序将其转换为BCD码数并存入内存20050H单元中

7.假定AX中的值为0000H—FFFFH的二进制数据,请编一汇编语言程序将其转换为BCD码数并存入内存20050H开始的单元中.
是8086/8088。开始忘了说了……

DATA SEGMENT
STR1 DB 'INPUT A NUMBER'
BUF DB ?
DATA ENDS
STACK SEGMENT STACK
DB 20 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,ES:DATA,CS:CODE,SS:STACK
STA:
MOV AX,DATA
MOV DS,AX
MOV ES,AX

MOV AH,1
INT 21H

CMP AL,39H
JG LAST
CMP AL,31H
JL LAST
SUB AL,30H
MOV CL,AL
MOV CH,0H

AB: MOV DL,07H
MOV AH,2
INT 21H

PUSH BX
PUSH AX
MOV BX,6666H
CC: MOV AX,6666H
BB: DEC AX
JNZ BB
DEC BX
JNZ CC
POP AX
POP BX

LOOP AB

LAST: MOV AH,4CH
INT 21H

CODE ENDS
END STA
这是第一个,剩下的你自己编吧

你用的硬件是什么?是单片机,ARM还是8086,8088?具体的电路图是怎么连的?脱硬件去谈软件怎么写,可能吗?