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

这篇具有很好参考价值的文章主要介绍了汇编语言(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实现,参数传送采用寄存器传送方式。

第一题:

框图:

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

 文章来源地址https://www.toymoban.com/news/detail-457533.html

代码:

 

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

截图:

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

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

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

第二题:

框图:

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

 

 代码:

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

 截图:

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

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

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

第三题:

框图:

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

 代码:

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

 截图:

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

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

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

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

第四题:

框图:

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

 

 代码:

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

截图:

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

Alt+F5调出dos系统显示:

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

 第五题:

框图:

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

 代码:

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

截图:

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

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

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

 

 

到了这里,关于汇编语言(32位除法、分支结构、循环结构,奇偶校验,ascii转换,功能号调用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM 体系结构与汇编语言

    Load/Store 架构,CPU 不能直接处理内存中的数据,需要先将内存中的数据加载到寄存器中才能操作,然后将处理结果存储到内存中。 固定的指令长度、单周期指令。 倾向于使用更多的寄存器来存储数据,而不是使用内存中的堆栈、效率更高。 ARM 有桶型移位寄存器,单周期内可

    2024年02月16日
    浏览(28)
  • 单片机 STM32启动文件详解(汇编语言解析)

    以前讲了固件库,从ST官网下载的固件库里面,有许多的启动文件(汇编语言写的.s文件) 启动文件 说明 startup_stm32f10x_ld.s Low Density 小容量 startup_stm32f10x_md.s Medium Density 中容量 startup_stm32f10x_hd.s High Density 高容量 startup_stm32f10x_xl.s Extra Large Density 超大容量 startup_stm32f10x_cl.s Con

    2023年04月25日
    浏览(42)
  • 汇编语言笔记(一)——汇编语言基础

    一、开发环境 我使用visual studio 2022 preview,其他版本的设置大同小异。 第一步: 打开visual studio,点击“创建新项目”: 第二步: visual studio并没有专门的汇编项目,所以需要挂羊头卖狗肉,选择C++空项目 第三步: 输入项目名称,点击创建 第四步: 鼠标右键单击项目名称—

    2024年02月05日
    浏览(30)
  • 汇编语言—常见汇编指令汇总

    mov    寄存器 ,数据                如:mov ax ,8 mov   寄存器,寄存器              如:mov ax,bx mov   寄存器,内存单元          如:mov ax,[0] mov   内存单元,寄存器          如:mov [0],ax mov   段寄存器,寄存器          如:mov ds,ax add   寄存器,数据

    2024年02月10日
    浏览(28)
  • 5.6 汇编语言:汇编高效数组寻址

    数组和指针都是用来处理内存地址的操作,二者在C语言中可以互换使用。数组是相同数据类型的一组集合,这些数据在内存中是连续存储的,在C语言中可以定义一维、二维、甚至多维数组。多维数组在内存中也是连续存储的,只是数据的组织方式不同。在汇编语言中,实现

    2024年02月11日
    浏览(30)
  • 5.7 汇编语言:汇编高效乘法运算

    乘法指令是一种在CPU中实现的基本算术操作,用于计算两个数的乘积。在汇编语言中,乘法指令通常是通过 mul(无符号乘法) 和 imul(有符号乘法) 这两个指令实现的。由于乘法指令在执行时所消耗的时钟周期较多,所以编译器在优化代码时通常会尝试将乘法操作转换为更

    2024年02月11日
    浏览(21)
  • 汇编语言第一讲:计算机的组织架构和汇编语言介绍

    第一讲:计算机的组织架构和汇编语言介绍 汇编语言 计算机组织架构 数字电路 术语回顾 数制 数字电路 硬件电路 数字电路的问题 汇编语言的开始 程序的节(sections) 调用操作系统的系统调用 列出文件(Listing files) 汇编和链接 调试汇编程序 反汇编现有的程序 附录 课程资源

    2024年04月09日
    浏览(37)
  • 南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)

    排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可

    2024年02月08日
    浏览(45)
  • 低级语言汇编真的各个面不如汇编吗?

    今日话题,低级语言汇编真的各个面不如C语言吗?C语言因其可移植性、开发效率和可读性而在各领域广泛使用,市场占有率极高。然而,汇编语言在特定场景下仍然具有独特优势,稳固地占据一席之地。如果你对这方面感兴趣,我可以分享一套包含各类语言和嵌入式行业教

    2024年02月06日
    浏览(31)
  • 在C语言中调用汇编语言的函数

    在C语言中调用汇编文件中的函数,要做的主要工作有两个: 一是在C语言中声明函数原型,并加extern; 二是在汇编中用EXPORT导出函数名,并用该函数名作为汇编代码段的标识,最后用mov pc, lr返回。然后,就可以在C语言中使用该函数了。 从C语言的角度,并不知道该函

    2024年02月14日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包