用汇编语言实现按键盘上的数字,按一个数左移一位,比如说第一次按1

作者&投稿:阴芸 (若有异议请与网页底部的电邮联系)
汇编语言将一个数的高低位互换,也就是说将一个数的第0位与第七位互换,第1位与第六位互换,以此类推~

原始的数据放入AL寄存器中-u1001394:0100 B90800 MOV CX,00081394:0103 D0E0 SHL AL,11394:0105 D0DB RCR BL,11394:0107 E2FA LOOP 01031394:0109 88D8 MOV AL,BL1394:010B CC INT 3

Z8279 EQU 212H
D8279 EQU 210H
LEDMOD EQU 00h ;左边输入,八位显示外部译码八位显示
LEDFEQ EQU 38H ;扫描频率
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: ;初始化
\\
PUSH CS
OUT DX,AL
POP ds


MOV DX,Z8279
MOV AL,LEDMOD
MOV AL,LEDFEQ
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,7DH
OUT DX,AL
MOV DX,D8279
MOV AL,7FH
OUT DX,AL
MOV DX,D8279
MOV AL,70H
OUT DX,AL
MOV DX,D8279
MOV AL,5bH
OUT DX,AL
MOV DX,D8279
MOV AL,70H
OUT DX,AL
MOV DX,D8279
MOV AL,76H
OUT DX,AL ;以上为写(HKZK88)
NOP
MOV DX,Z8279
MOV AL,0C2H
OUT DX,AL ;置空FIFO寄存器
MOV CL,00H ;改
WAIIT:
NOP
IN AL,DX
MOV BL,AL
AND AL,80H
CMP AL,80H
JE WAIIT ;FIFO正在清除期间则跳转等待
MOV AL,BL
AND AL,0FH
CMP AL,00H
JE WAIIT ;无键按下则等待
CMP CL,02H
JE OUTPUT
NEXT: MOV AL,40H ;写 读FIFO RAM命令字
OUT DX,AL
MOV DX,D8279 ;读入FIFO RAM内容
IN AL,DX
NOP
CMP AL,3bH
JE FINI
;查表,将键码放入AL中
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
MOV DX,Z8279 ;清FIFO RAM寄存器
MOV AL,0C2H
OUT DX,AL
inc cl
and cl,07h
JMP WAIIT ;等待下一次键输入
FINI:MOV DX,Z8279
MOV AL,0D3H
OUT DX,AL
JMP $


LED DB 07H,66H,06H,3FH
DB 00H,00H,00H,00H
DB 7FH,6DH,5BH,71H
DB 00H,00H,00H,00H

DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H

DB 6FH,7DH,4FH,79H
DB 00H,00H,00H,00H
DB 77H,7CH,39H,5EH
DB 00H,00H,00H,00H

DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H,00H,00H
output: ;改
push dx
push ax
mov dx,d8279
mov al,7fh ;8
out dx,al
mov dx,d8279
mov al,7fh ;8
oUt dx,al
inc cl
inc cl
pop ax
pop dx

jmp next
CODE ENDS
END START

code  segment
      assume cs:code
      org 100h
start:jmp bbb
msg   db 255 dup('$')
bbb:
      push cs
      pop ds
      push cs
      pop es
      lea di,msg
      lea dx,msg
      mov si,0
@1:
      mov ah,2
      mov dh,10
      mov dl,40
      int 10h     ;将光标置于10行、40列的位置
      mov ah,1
      int 21h     ; 读键盘
      cmp al,13
      je @exit
      mov [di],al
      inc di
      mov ah,2
      mov dh,10
      inc si
      mov cx,si
      mov dl,41
      sub dl,cl
      int 10h    ; 将光标置于10行,41-si 列的位置
      lea dx,msg
      mov ah,9
      int 21h    ; 显示msg串
      jmp @1
@exit:
      mov ah,4ch
      int 21h
code  ends
      end start

; 键入的字符数不要超过40



试编写一个汇编语言程序 要求对键盘输入的小写字母
;;从键盘输入字符,;;若是 小写字母 显示"This is Lower case letters.";;若是其它字符不显示 CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG MSG DB "This is Lower case letters."ORG 200H START:MOV AH,01H INT 21H CMP AL,61H JB NODSP CMP AL,7AH JA NODSP DSP:MOV AX,SEG MSG MOV DS...

试编写一个汇编语言源程序,将键盘输入的ASCII码转换为二进制。_百度知...
;编写一个汇编语言源程序,用于将键盘输入的ASCII码转换为二进制。;如果输入的是回车键,程序直接结束。;.com 文件格式 code segment main proc far assume cs:code, ds:code org 100h start:PUSH CS POP DS NN1:MOV AH, 02 MOV DL, 0DH INT 21H MOV DL, 0AH INT 21H MOV AH, 01 INT...

用汇编语言编写:由键盘输入两个整数val1和val2,输出稍大于val1且是val...
楼主,你问的简单,“就编写一个这样的程序”,这个程序拿C语言编肯定非常简单,拿汇编可没那么容易啊。以下是程序,简单说明几点:1. 由于输入、输出的都是字符,所以用了两个函数。Atoi16是把输入的字符转为正整数,I16toa 是把整数转成字符串。2. 调用Atoi16时,要配好si和cl两个寄存器。si...

用8086汇编语言编写程序键盘输入一段字符以#结束,统计其中数字、字母...
stack segment stack byte 256 dup(0)stack ends data segment C1 dw 0 ;空格数 C2 dw 0 ;数字数 C3 dw 0 ;字母数 C4 dw 0 ;其它字符数 BUFF db 64, 0, 64 dup(?) ;接收输入缓冲区,BUFF[0]存储缓冲区大小,BUFF[1]存储实际输入数,BUFF[2]开始为输入的数据 SHEX...

用汇编语言实现从键盘输入两个2位数并进行相加,最后输出结果
DATAS SEGMENT ;数据段 DATA1 DB 31H,32H,38H,34H,37H ;定义DATA1为被加数 DATA2 DB 34H,35H,39H,37H,31H ;定义DATA2为加数 DATAS ENDS STACKS SEGMENT ;堆栈段 STA DB 64 DUP(0) ;(伪指令)为STA预留64个字节的存储空间 SP_TOP DB 0 ;定义SP_TOP单元的数值为0 ...

汇编语言:从键盘输入字符,以回车键结束,将字符串中包含的字母输出到屏...
CODE SEGMENT ASSUME CS:CODE START: JMP BBB MSG1 DB 'please input: $' STR0 DB 255 STR1 DB ? STR2 DB 255 DUP('$') ALPHA0 DB 13,10 ALPHA DB 255 DUP('$') NUMBER0 DB 13,10 NUMBER DB 255 DUP...

汇编语言,怎么从键盘输入字符串呢?
DATASSEGMENT A100DUP(?)DATASENDS CODESSEGMENT ASSUMECS:CODES,DS:DATAS,SS:STACKS START:MOVAX,DATAS MOVDS,AX MOVSI,OFFSETA MOVCX,20 L:MOVAH,01H INT21H MOVA[SI],AL INCSI LOOPL MOVAH,4CH INT21H CODESENDS ENDSTART

急求汇编语言问题!!!
;=== ;从键盘输入9个十进制数(数与数之间用空格隔开);再输入的一个序号(1-9),输出对应的数。输入0结束。;以上要求均已满足。;程序如下:;--- DISP_STR MACRO X ;宏定义.MOV DX, OFFSET X MOV AH, 9 INT 21H ENDM ;--- DATA SEGMENT ;数据段....

用汇编语言实现从键盘读一行信息,并存入用户定义的缓冲区buffer。如从...
data segment buffer db 100,?,100 dup(0)data ends code segment assume cs:code,ds:data begin:mov ax,data mov ds,ax lea dx,buffer mov ah,10 int 21h ;用dos的10号功能调用实现输入一个字符串并存到内存缓冲区 mov ax,4c00h int 21h code ends end begin 汇编连接生成exe文件后,...

试编写一个汇编语言程序,要求从键盘接收一个四位的16进制数,并在终端上...
程序中,如是字符‘A(41H=1000001B)~F(46H=1000110B)’的话,执行AND AL, 0FH 后,将化为0001B~0110B (十进制1-6),而数值0AH=十进制10 D,与0001B相差为9,所以需跟上 ADD AL, 9 进行校正.另程序中,DEL CH 应为DEC CH 之误....

哈密市17678501561: 用汇编语言实现以下输出
敞致口服: ; eg0000.asm in Windows Consoleinclude io32.inc.datain_msg4 byte '请选择0-3并按回车确定:',0 in_msg0 byte '您选择的频率为f0,谢谢!',0 in_msg1 byte '您选择的频率为f1,谢谢!',0 in_msg2 byte '您选择的频率为f2,谢谢!',0 in...

哈密市17678501561: 用汇编语言编写一个程序:通过键盘输入一个数字,求1加到该数的和,并将结果显示在屏幕上 -
敞致口服: 假如输入的数是N,则计算(1+N)*N/2

哈密市17678501561: 用两个按键控制数码管一个加一个减 都是按一下一加 按一下一减 用汇编语言 谢谢 -
敞致口服: 这个用外部中断写很简单的,只要一个中断INC 30H,一个DEC30H(30只是暂存器,随便定义的,30到7F之间都可以)就行,其他的跟数码管静态显示一样的

哈密市17678501561: 用汇编语言识别奇偶数 -
敞致口服: CODE SEGMENT ASSUME CS:CODE START:MOV AH,1h;从键盘输入一个数 INT 21H AND AL,1H;看看AL中最后一位是不是1 是1为奇数 0为偶数 ADD AL,'0';因为得到的是0或1因为得加上字符O的ASC码值 MOV DL,AL;放心DL调用6号中断显示 MOV AH,6 INT 21H MOV AH,4CH INT 21H CODE ENDS END START

哈密市17678501561: 汇编语言中怎样从键盘中任意输入一个数并存 -
敞致口服: 这个程序能接受256个字符,如果你还想输入更多的字符,只需要把空间留的更多一点就行 data segment keyboard db 256 dup (?) ;为输入的字符串预留空间 data ends code segment assume cs:code,ds:data main proc far mov ax,data mov ...

哈密市17678501561: 一位数码管连在51单片机上,按键后数码管加1,按一下加1.怎样用汇编语言编写? -
敞致口服: 一、图貌似有点问题: 1、用的是共阴极数码管,如果用单片机直接驱动的话,应该用共阳极的; 2、所有LED(包括数码管)都未接限流电阻,建议串接470欧左右的; 3、单片机直接驱动“sounder”,估计驱动电流不够,建议接三极管后再...

哈密市17678501561: 帮忙写一个汇编程序,画出流程图,并实现从键盘输入一位数,判断奇偶性,并在屏幕上输出一个标志,若为奇 -
敞致口服: 【接收一个数】I 【判断奇偶数】-------奇数I II偶数 I【 显示0 】 II【 显示1 】<---------- code segment assume cs:code start:mov ah,00hint 16hsub al,30hmov ah,0mov bl,2div blcmp ah,0jz out0jmp out1out0:mov dl,30hmov ah,2hint ...

哈密市17678501561: 用汇编语言实现:有十个有符号数,按从小到大的顺序排列. 例如:1, - 1,2, - 2,3, - 3,4, - 4,5, - 5 -
敞致口服: 10个有符号数从键盘输入: CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES CALL INPUTNUM LEA SI,@ARRAY MOV CX,@NUM CALL SORT MOV AH,2 MOV DL,13 INT 21H MOV DL,10 INT ...

哈密市17678501561: 汇编语言,从键盘输入一字符串 -
敞致口服: ;经运行,符合题目要求 code segment assume cs:code,ds:code org 100h start: push cs pop ds Q0:lea dx,Buffer mov ah,9 ;显示提示 int 21h mov si,200h ;硬编码缓冲区首址 mov byte ptr [si],0ffh ;置输入缓冲区大小为255个字符 mov dx,si ;定...

哈密市17678501561: 用8086汇编语言写一个计算器程序.该程序输入的是10进制数.执行时,直接用键盘输入数字和运算符 -
敞致口服: 1首先用中断10把计算器的图形界面显示出来 2调用读键盘功能,读入相关的数字和符合 3把输入状态分为第一数数据,运算符,第二数据,运算,显示,几个过程 4或者直接输入,然后用二数据运算法则分析输入的表达式,并计算结果 5显示出来

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网