![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编
Taneeyo
努力学习
展开
-
【MIPS汇编简单算法实例 Lab15】用栈实现函数调用完成 统计字符串中某种数据类型的个数
【MIPS汇编简单算法实例 Lab14】用栈实现函数调用完成 统计字符串中某种数据类型的个数以小写字母为例:.data arr:.byte '0','a','z',0,'1',1,'b','c',12,'p'.textmain: la $t0,arr # &arr li $t1,11 #len addiu $sp,$sp,-16 sw $t0,0($sp) sw $t1,4($sp) sw $ra,12($sp) jal LiLetter lw $ra,12($sp原创 2021-05-11 20:30:58 · 395 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab14】用栈实现函数调用完成 搜索数组中某个值
6.2Search (&X,N,V,L)编写一个函数︰按顺序搜索大小为N个字节的数组×,获得值V存放在数组中的相对位置L。输入参数&X、N和V通过栈传递给函数,函数的返回值即相对位置L(从1到N范围内的某个数字)也通过栈传递。如果未找到值V,则返回-1。.data arr:.byte 12,21,52,23,52,13.textmain: la $t0,arr li $t1,6 #len li $t2,13 #x addiu $sp,$sp,-20 sw $t0,0原创 2021-05-11 18:00:15 · 692 阅读 · 1 评论 -
【MIPS汇编简单算法实例 Lab12】用栈实现函数调用完成 寻找数组中最大值和最小值
6.1MinMax (&×, N, Min, Max)写一个函数∶搜索大小为“N"个字( word ) 的数组“X",找出其中的最小值和最大值。输入参数×和N以及返回的最小值和最大值都通过栈传递。(显示最小值和最大值通过调用MinMax函数实现).data arr:.word 13,25,26,37,12,4,99,21,5.textmain: la $t1,arr li $t2,9 #len addiu $sp,,$sp,-20 sw $t1,0($sp) sw $t原创 2021-05-11 17:13:40 · 837 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab13】日历 月历?
.data #1 2 3 4 5 6 7 8 9 10 11 monnum1:.word 31,28,31,30,31,30,31,31,30,31,30,31 monnum2:.word 31,29,31,30,31,30,31,31,30,31,30,31 msg1:.asciiz"Please input year :" msg2:.asciiz"\nPlease input month :" prompt:.asciiz"\nMon T原创 2021-05-08 00:07:35 · 505 阅读 · 1 评论 -
【MIPS汇编简单算法实例 Lab11】冒泡排序法
【MIPS汇编简单算法实例 Lab11】冒泡排序法.data arr:.word 49,38,65,97,76,13,27 nl:.asciiz"\n".text main: la $t0,arr li $t9 5 #len-2 li $t1,0 li $t4,4 addi $t2,$t1,1 loop1: bgt $t1,$t9,print addi $t2,$t1,1 mul $t3,$t4,$t1 lw $t3,($t3) mul $t5,$t4,$t2 l原创 2021-05-07 11:12:20 · 456 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab10】斐波那契数列 【详细】
【MIPS汇编简单算法实例 Lab10】斐波那契数列.data prompt:.asciiz "please input a value:" result:.asciiz "result:".textmain: li $v0,4 la $a0,prompt syscall li $v0,5 syscall move $t0,$v0 li $t1,0 li $t2,1 li $t4,1 li $t3,3loop: bgt $t3,$t0,out move $t1,$t2原创 2021-05-06 20:33:33 · 5993 阅读 · 1 评论 -
【MIPS汇编简单算法实例 Lab9】统计某寄存器中 1 的个数
【MIPS汇编简单算法实例 Lab9】统计某寄存器中 1 的个数.text li $a0,0x10101111 li $t0,0 li $t3,0loop: bgt $t0,7,out andi $t1,$a0,0x0f bne $t1,1,goon addi $t3,$t3,1goon: srl $a0,$a0,4 addi $t0,$t0,1 b loopout: li $v0,1 move $a0,$t3 syscall li $v0,10 syscall原创 2021-05-06 20:14:05 · 988 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab8】选择排序法
【MIPS汇编简单算法实例 Lab8】选择排序法.data arr:.word 49,38,65,97,76,13,27 ai:.asciiz "xxxxxx" nl:.asciiz "\n".text main: la $t0,arr li $t1,0 # i li $t2,0 # j li $t3,6 #len-1 li $t4,4 loop1: bgt $t1,$t3,out mul $t5,$t4,$t1 #tmp lw $t9,($t5) #min原创 2021-05-06 20:02:08 · 274 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab7】增序数组的插值
.data array:.word 4,8,12,24,28,30,36,40,48,64 x:.word 31 nexli2n:.asciiz"21" nexlin : .word '\n'.textmain: la $t0,array li $t1,9 li $t2,0 li $t4,4 la $t9,x lw $t9,($t9)findPos: blt $t9,$t5,mkarr add $t3,$t0,$t2 mul $t6,$t3,$t4 lw $t5,($t6)原创 2021-05-06 09:42:01 · 205 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab6】寻找数组中最大值和最小值
.data array: .word 100,-10,0,23,35,-67,90,10,65,-87 msg1:.asciiz "\n min : \n" msg2:.asciiz "\n max : \n".textmain: la $t0,array lw $t1,($t0) move $t2,$t1 li $t3,1 li $t4,10 addi $t0,$t0,4loop: lw $t5,($t0) # in max loop bge $t1,$t5,min原创 2021-05-05 22:28:56 · 1589 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab5】无符号10进制数以16进制显示 (二)非查表方式
.data prompt:.asciiz "\n input a value :" result :.ascii "\n hex :" buf :.space 12.textmain: li $v0,4 la $a0,prompt syscall li $v0,5 syscall move $t0,$v0 la $t1,buf li $t2,8 addi $t3,$t1,10loop: blez $t2,end andi $t4,$t0,0x0f srl $t0原创 2021-05-05 21:51:49 · 289 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab4】无符号10进制数以16进制显示
.data hextab: .asciiz "0123456789ABCDEF" result:.ascii "HEX :0x" hexout: .asciiz "xxxxxxxx".textmain: li $v0,5 syscall move $t0,$v0 li $s0,7loop: and $t1,$t0,0x0f srl $t0,$t0,4 lb $t2,hextab($t1) sb $t2,hexout($s0) sub $s0,$s0,1 bltz $s0,ex原创 2021-05-05 12:36:48 · 559 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab3】任意进制显示
.data buf : .space 12 .textmain: li $t0,4351 #待转换数 li $t1,4 #进制 la $a0,buf #缓冲区地址赋值到a0 addi $s0,$a0,11 # 用s0记录buf最后一个位置 addi $t3,$zero,0loop: div $t0,$t1 mflo $t0 mfhi $t2 addi $t2,$t2,0x30 sb $t2,($s0) beqz $t0,out addi $s0,$s0,-1原创 2021-05-05 11:03:06 · 131 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab2】整数的平方根(遍历法、二分搜索法)
1.遍历法.data prompt:.asciiz "\n input a value:" result:.asciiz "\n the square root is : ".text main: li $v0,4 la $a0,prompt syscall li $v0,5 syscall move $t0,$zero move $t1,$v0 srl $t2,$v0,1 # input / 2 addi $t2,$t2,1原创 2021-05-04 22:26:27 · 533 阅读 · 0 评论 -
【MIPS汇编简单算法实例 Lab1】计算前n项和
.data prompt : .asciiz "\n Please input a value for N = " result: .asciiz " \n 1+2+...+n = " bye : .asciiz "\n Error with the input.".text main: li $v0,4 la $a0,prompt syscall li $v0,5 #input a integer syscall while: add $t0,$t0,$v0原创 2021-05-04 21:20:49 · 497 阅读 · 0 评论 -
【MIPS汇编编程练习Lab7】汇编中的数组、数组遍历、初始化
1、数组存值取值.data arr: .space 12 .text addi $s0,$zero,3 addi $s1,$zero,6 addi $s2,$zero,4 addi $t0,$zero,0 sw $s0,arr($t0) addi $t0,$zero,4 sw $s1,arr($t0) addi $t0,$t0,4 sw $s2,arr($t0) addi $t0,$t0,4 addi $t2,$zero,0 lw $t6,arr($t2)原创 2021-04-27 09:17:54 · 2820 阅读 · 0 评论 -
【MIPS汇编编程练习Lab6】 while 循环、Loop结构
利用循环打印 1到10.data msg : .asciiz "\nend!" ncha: .byte '\n' .text main: addi $t0,$zero,0 while: bgt $t0,9,exit addi $t0,$t0,1 li $v0,1 move $a0,$t0 syscall jal printfnewLine j while exit: jal printfend li原创 2021-04-26 20:50:35 · 763 阅读 · 0 评论 -
【MIPS汇编编程练习Lab5】汇编中的条件语句 大于小于比较 if-else statement slt
1.条件语句 if-else statement.data msg1:.asciiz "There numbers are equal .\n" msg2:.asciiz "There numbers are not equal.\n" .text main: addi $t0,$zero,21 addi $t1,$zero,21 beq $t0,$t1,numberEqual li $v0,4 la $a0,msg2 syscall li原创 2021-04-26 20:17:21 · 2278 阅读 · 0 评论 -
【MIPS汇编编程练习Lab5】汇编中的数据输入 整数、浮点数、字符串 (Like cin. scanner scanf())
1、获取 用户输入的 一个整数.data prompt: .asciiz "Enter your age: " msg : .asciiz "\nYour age is: ".text #prompt user to enter age li $v0,4 la $a0,prompt syscall #get user input li $v0,5 syscall #strore the result in $t0 move $t0,$v0 # Displat a原创 2021-04-26 17:02:29 · 1624 阅读 · 0 评论 -
【MIPS汇编编程练习Lab4】堆栈寄存器使用与递归方法(函数)使用
1、堆栈保存初始变量.data newLine: .asciiz "\n" #定义换行变量.text main: addi $s0,$zero,10 # 将10 存到s0堆栈寄存器中,用于保存s0的初值 jal increaseMyReg #跳转到 自定义方法 # 打印换行符号 li $v0,4 la $a0,newLine syscall #打印当前s0寄存器中的值 li $v0,1 move $a0,$s0 syscall #原创 2021-04-26 15:08:52 · 642 阅读 · 0 评论 -
【MIPS汇编编程练习Lab3】函数方法
1.简单的打印函数.data msg:.asciiz "Good morning!\n".text main: jal displayMsg # tell system the program is done li $v0,10 #return 0 syscall displayMsg: li $v0,4 la $a0,msg syscall jr $ra #return2.带有输入参数和返回值的函数.data.text main:原创 2021-04-26 10:51:23 · 221 阅读 · 0 评论 -
【MIPS汇编编程练习Lab2】加减乘除 简单运算
整数加法.data num1:.word 5 num2:.word 10.text lw $t0,num1($zero) lw $t1,num2($zero) add $t2,$t0,$t1 # t2 = t0 + t1 li $v0 ,1 add $a0,$zero,$t2 syscall另一版本.data a: .word 3 b: .word 7.text lw $t0,a lw $t1,b add $t2,$t1,$t0 li $v0,原创 2021-04-25 20:35:13 · 4820 阅读 · 1 评论 -
【MIPS汇编编程练习Lab1】不同数据类型值的表示
.data域中表示变量的声名.text域中表示指令的流程打印 string 字符串 .data str: .asciiz "helloworld!\n" #声名一个字符串变量 .text li $v0, 4 #li指令将特定数值加载到该寄存器中 此处4表示 system call code,表示准备输出地址单元的内容 la $a0,str #la指令,将变量的地址复制到寄存器$a0中,$a0此处表示为输出缓冲区 syscall #系统调用 执行代码打印 char 字符 .dat原创 2021-04-25 18:59:39 · 802 阅读 · 1 评论