汇编语言(32位除法、分支结构、循环结构,奇偶校验,ascii转换,功能号调用)

题目:

1)顺序结构:编写一个32位无符号数除法的程序。要求将存放在NUM1中的32位无符号数与存放在NUM2中的16位无符号数相除,结果存放在NUM3和NUM4中。

根据题目要求,应把存放在数据段内的被除数NUM1定义为32位,除数NUM2定义为16位,商NUM3定义为16位,余数NUM4定义为16位。

2)分支结构:编写一个字符比较程序,比较 3 个无符号字节数 ABC 的大小,并根据比较结果 对变量 K 赋值:

如果 3 个数不相等,则 K=0

如果 3 个数中有两个相等,则 K=1

如果 3 个数都相等,则 K=2

3)循环结构:将字符串STRN(以“$”结尾)中的每一个字符均加上偶校验位,并统计有多少个字符因含有奇数个“1”而加上了校验位。K统计结果存于N单元中。

4)子程序结构:将BUF开始的10个单元两位十六进制数转换成ASCII码,并在屏幕上显示出来。码型转换由子程序HEXASC实现,参数传送采用寄存器传送方式。

第一题:

框图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_6,color_FFFFFF,t_70,g_se,x_16

 

代码:

 

DATA SEGMENT
	NUM1 DD 12345678H
	NUM2 DW 3456H
	NUM3 DW ?
	NUM4 DW ?
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE, DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	MOV DX,DS:[0002]
	MOV AX,DS:[0000]
	DIV NUM2
	MOV NUM3,AX
	MOV NUM4,DX
	MOV AH,4CH
	INT 21H
CODE ENDS	
	END START

截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16 

第二题:

框图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_11,color_FFFFFF,t_70,g_se,x_16

 

 代码:

DATA SEGMENT
	A DB 01H
	B DB 01H
	C DB 01H
	K DB ?
DATA ENDS
CODE SEGMENT
START:
	ASSUME CS:CODE,DS:DATA
	MOV AX,DATA
	MOV DS,AX
	MOV BL,0
	MOV AL,A
CMPAB:	CMP AL,B
	JZ AB
CMPAC:	CMP AL,C
	JZ AC
CMPBC:	MOV DL,B
	CMP DL,C
	JZ BC
	JMP SK
AB:	INC BL
	JMP CMPAC
AC:	INC BL
	JMP CMPBC
BC:	INC BL
	MOV K,BL
	CMP K,3
	JZ KDEC

SK:	MOV K,BL
	JMP EXIST
KDEC:	DEC K
EXIST:	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

 截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16 

第三题:

框图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_19,color_FFFFFF,t_70,g_se,x_16

 代码:

DATA SEGMENT
	STRING DB 'STRN$'
	N DB 0
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:	MOV AX,DATA
	MOV DS,AX
	MOV SI,0
	MOV CL,4
CHECK:	MOV AL,[SI]
	TEST AL,[SI]
	JP EVN
	INC N
	OR BYTE PTR [SI],80H
EVN:	INC SI
	LOOP CHECK
EXSIT:	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

 截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16 

结果如图所示:T和R进行了偶校验,因为‘T’=54H=0101 0100B,奇数个“1”

‘R’=52H=0101 0010B,奇数个“1”

第四题:

框图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 代码:

DATA SEGMENT
	BUF DB 11H,12H,13H,14H,15H,16H,17H,18H,19H,1AH
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:	MOV AX,DATA
	MOV DS,AX
	MOV BL,10
	MOV SI,0
	CALL HEXASC
	MOV AH,4CH
	INT 21H
HEXASC PROC
	CHANGE:	MOV AL,BYTE PTR [SI]
		MOV CL,4
		SHR AL,CL
		ADD AL,30H
		CMP AL,'9'
		JBE B9
		ADD AL,7H
	
	B9:	MOV DL,AL
		MOV AH,2H
		INT 21H

	CHANGE2:AND BYTE PTR [SI],0FH
		ADD BYTE PTR [SI],30H
		CMP BYTE PTR [SI],'9'
		JBE B19
		ADD BYTE PTR [SI],7H
	B19:	MOV DL,[SI]
		MOV AH,2H
		INT 21H
		MOV DL,' '
		MOV AH,2H
		INT 21H
		INC SI
		DEC BL
		LOOPNZ CHANGE 
		RET
HEXASC ENDP
EXSIT:	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

Alt+F5调出dos系统显示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16 

 第五题:

框图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_12,color_FFFFFF,t_70,g_se,x_16

 代码:

DATA SEGMENT
	BUFF DB 50
	DB ?
	DB 50 DUP (?)
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:	MOV AX,DATA
	MOV DS,AX
	LEA DX,BUFF
	MOV AH,10
	INT 21H
	MOV CL,BUFF+1
	MOV SI,2
CHANGE:	
	CMP BYTE PTR [SI],'a'
	JB SKIP
	CMP BYTE PTR [SI],'z'
	JA SKIP
	SUB BYTE PTR [SI],20H
SKIP:	INC SI
	LOOP CHANGE
SCREEN:	LEA DX,BUFF+2
	MOV AH,09H
	INT 21H
EXSIT:	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

截图:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55GGeHg=,size_20,color_FFFFFF,t_70,g_se,x_16

 分析:结果如图所示,所有小写字母转换为了大戏字母,其他不变。

 

 

物联沃分享整理
物联沃-IOTWORD物联网 » 汇编语言(32位除法、分支结构、循环结构,奇偶校验,ascii转换,功能号调用)

发表评论