汇编语言程序2021-01-09

汇编语言程序设计

通过键盘输入一个小写字母,找出对应的前导字母和后续字母,再按顺序显示这三个字母。

;通过键盘输入一个小写字母,找出对应的前导字母和后续字母,再按顺序显示这三个字母。


CODE SEGMENT
    ASSUME CS:CODE
START:
    MOV AH,07H  ;07H键盘输入无回显
    INT 21H
    MOV BL,AL  ;将输入AL的字符存入BL
    
    CMP BL,60H ;判断是否为小写字母 
    JBE L2 ;<=若不是,跳转至结束
    CMP BL,7AH ;判断是否为小写字母
    JA L2 ;>若不是,跳转至结束

L1:    
	SUB AL,01H  ;-前一位
    MOV DL,AL
    MOV AH,02H  ;输出DL
    INT 21H
    ADD DL,01H  ;+自己
    INT 21H
    ADD DL,01H  ;+后一位
    INT 21H
    
L2: MOV AH,4CH  ;结束程序
    INT 21H
CODE ENDS
    END START

根据三个数比较,结果在终端上显示如下信息,0,1,2

 ;根据比较结果在终端上显示如下信息,0,1,2
DATA SEGMENT
    ARRAY DW 3,1,2;16位初始数据
DATA ENDS


CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
 	MOV BX,DATA
 	MOV DS,BX ;初始化数据段段地址 	
 	
    MOV AX,[ARRAY];直接寻址
    MOV BX,[ARRAY+2]
    
    CMP AX,BX  
    JNE K1;AX!=BX
   
   	MOV CX,[ARRAY+4]
    CMP AX,CX ;AX=BX
    JNE S2;只有两个相同,相等直接下一条语句
    
    MOV DL,32H  ;三个相等
    MOV AH,02H
    INT 21H
    JMP E;结束
    
K1:	
	CMP BX,CX
	JE S2;只有两个相同
	JNE S1;都不等
	  
S1:
    MOV DL,30H  ;都不等
    MOV AH,02H
    INT 21H
    JMP E;结束
    
S2:
    MOV DL,31H  ;两个相等
    MOV AH,02H
    INT 21H
    JMP E ;结束
    
    
E:
    MOV AH,4CH;退出程序
    INT 21H
CODE ENDS
    END START

从键盘上输入一个8位二进制数,在显示器上显示其相应的2位十六进制数。

;从键盘上输入一个8位二进制数,在显示器上显示其相应的2位十六进制数。

DATA SEGMENT
	;
DATA ENDS

STACK SEGMENT PARA STACK 'STACK'
	DB 10 DUP(?);
STACK ENDS

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA,SS:STACK
START:
	MOV AX,DATA ;初始数据段短地址
    MOV DS,AX
    
    MOV BL,0 ;保存输入8位
    
    MOV CX,0008H ;输入8位
L1:	MOV AH,01H
	INT 21H
	SUB AL,30H;转化为数值
	SHL BL,01H;左移1
	OR BL,AL
	DEC CX ;自减
	JNZ L1 ;ZF不等于0跳转
	
	MOV DL,0AH ;换行
	MOV AH,02H
	INT 21H
	
	MOV CH,2;2位16进制
ROTATE: 
	MOV CL,4 
    ROL BL,CL;循环左移4位,先输出高位
	MOV DL,BL
	AND DL,0FH;高四位置零,取低四位
	ADD DL,30H;转acsii码
	CMP DL,39H
	JBE PRINTIT
	ADD DL,07H;大于跳到字母
PRINTIT: 
	MOV AH,02H
	INT 21H
	DEC CH ;自减
	JNZ ROTATE

	
	MOV DL,48H;H
	MOV AH,02H
	INT 21H

	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

要求从键盘上接收一个4位十六进制数,然后再显示器上显示其对应的16位二进制数。


;要求从键盘上接收一个4位十六进制数,然后再显示器上显示其对应的16位二进制数。

DATAS SEGMENT
   ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
   ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
   ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
   MOV AX,DATAS
   MOV DS,AX
      
   
   MOV BX,0;保存输入的4位16进制
   MOV CH,4
L1:
   MOV AH,01H;输入AL
   INT 21H
   
   ;处理9<in<A,a<in
   CMP AL,39H
   JBE L2;<=9
   SUB AL,07H;取a后
L2:	
   SUB AL,30H;acsii转
   MOV CL,4
   SHL BX,CL;左移4位,最低4为0
   OR BL,AL;将输入保存到BX
   DEC CH
   JNE L1
   
   
   	
   MOV DL,0AH;回车
   MOV AH,02
   INT 21H
   
   
   
   ;测试BX
   MOV CX,16
L3:	SHL BX,1;左移
   JNC L4 ;CF为0
   MOV DL,'1'
   MOV AH,02H
   INT 21H
   JMP L5;处理完0跳转循环 	
   
L4:	MOV DL,'0'
   MOV AH,02H
   INT 21H;;处理完1直接循环 
   
L5:	LOOP L3;循环
      
   
   MOV AH,4CH
   INT 21H
CODES ENDS
   END START


从键盘上输入一个8位二进制数,在显示器上显示其相应的2位十六进制数。

;从键盘上输入一个8位二进制数,在显示器上显示其相应的2位十六进制数。
DATA SEGMENT
	;
DATA ENDS

STACK SEGMENT PARA STACK 'STACK'
	DB 10 DUP(?);
STACK ENDS

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA,SS:STACK
START:
	MOV AX,DATA ;初始数据段短地址
    MOV DS,AX
    
    MOV BL,0 ;保存输入8位
    
    MOV CX,0008H ;输入8位
L1:	MOV AH,01H
	INT 21H
	SUB AL,30H;转化为数值
	SHL BL,01H;左移1
	OR BL,AL
	DEC CX ;自减
	JNZ L1 ;ZF不等于0跳转
	
	MOV DL,0AH ;换行
	MOV AH,02H
	INT 21H
	
	MOV CH,2;2位16进制
ROTATE: 
	MOV CL,4 
    ROL BL,CL;循环左移4位,先输出高位
	MOV DL,BL
	AND DL,0FH;高四位置零,取低四位
	ADD DL,30H;转acsii码
	CMP DL,39H
	JBE PRINTIT
	ADD DL,07H;大于跳到字母
PRINTIT: 
	MOV AH,02H
	INT 21H
	DEC CH ;自减
	JNZ ROTATE

	
	MOV DL,48H;H
	MOV AH,02H
	INT 21H

	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

通过键盘接收一个个位数N,然后显示N个字母‘$’。

;通过键盘接收一个个位数N,然后显示N个字母‘$’。

CODE	SEGMENT
		ASSUME	CS:CODE
START:	
		MOV		AH, 01H;输入保存到al,回显
		INT		21H
		
		MOV		CL, AL
		SUB		CL, 30H;循环cx
		MOV		CH, 00H
L1:	MOV		DL, '$'
		MOV		AH, 02H
		INT		21H
		LOOP	L1

		MOV		AH, 4CH
		INT		21H

CODE	ENDS
		END	START




用15行*16列的表格形式显示ASCII码为10H-FFH的所有字符。

;用15行*16列的表格形式显示ASCII码为10H-FFH的所有字符。
DATAS SEGMENT
;
DATAS ENDS


CODES SEGMENT
    ASSUME CS:CODES
START:
	MOV BL,10H
    MOV CH,15;行
J1: MOV CL,16;列
J2: MOV DL,BL;输出
    MOV AH,02H
    INT 21H
    INC BL;值自加
    DEC CL;列自减
    JNZ J2
    MOV DL,0DH;回车
    INT 21H  
    MOV DL,0AH;换行
    INT 21H
    ;一行结束
    
    DEC CH;行自减
    JNZ J1
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值