首页 > 其他分享 >[20230826]dc命令复杂学习2.txt

[20230826]dc命令复杂学习2.txt

时间:2023-08-26 21:57:01浏览次数:43  
标签:10 la -- dc 20230826 寄存器 sa txt

[20230826]dc命令复杂学习2.txt

--//昨天做了累加的例子,并解析命令里面的意思.今天尝试做一个阶乘的例子.

$ seq 5 | dc -f - -e "[*z1<r]srz1<rp"
120

--//很简单就是里面的+换成了*,实际上我使用seq 5传了5个参数.如果传入1个呢?
--//假设做10的阶乘.

$ echo 10*9*8*7*6*5*4*3*2*1 | bc
3628800

$ dc -e "[la 1 - sa la * la 1<r]sr" -e "10 sa la la 1<r p"
3628800

$ seq 10 | dc -f - -e "[*z1<r]srz1<rp"
3628800

$ echo 10 | dc -e "[la 1 - sa la * la 1<r]sr" -f - -e "sa la la 1<r p"
3628800

--//简单解析:
--// [la 1 - sa la * la 1<r]sr -> 保存字符串 la 1 - sa la * la 1<r 到寄存器r,这也是循环运算的主体.
--// -f - ,也就是信息来自管道,也就是将10压入堆栈.
--// sa la la 1<r ,sa将10保存到寄存器a,la la将10从寄存器a取出2次, 1< 比较1<10为真调用寄存器r执行.
sr

Pop the value off the top of the stack and store it into register r.
推出顶端的堆栈值进入内存寄存器,保存到寄存器r。

lr

Copy the value in register r and push it onto the stack. This does not alter the contents of r.
Each register also contains its own stack. The current register value is the top of the register's stack.
复制寄存器r中的值,并将其推到堆栈中。这并不改变r的内容。每个寄存器还包含它自己的堆栈。当前的寄存器值是寄存器的堆栈的顶部


--//循环主体:
--//la 1 - sa la * la 1<r
--//la将10从寄存器a取出,
--//1 - 减1,变成9 .
--//sa la  sa保存9到寄存器a.la将9从寄存器a取出.
--//*  做乘法运算 10 * 9 = 90
--//la la将9从寄存器a取出.
--//1<r 比较1<9为真调用寄存器r执行.如此循环.

--//将里面la换成d结果一样.
$ echo 10 | dc -e "[la 1 - sa la * la 1<r]sr" -f - -e "sa la d 1<r p"
3628800

--//解析d命令:
d

Duplicates the value on the top of the stack, pushing another copy of it. Thus, ''4d*p'' computes 4 squared and prints
it.
复制堆栈顶部的值,然后推入它的另一个副本。因此,"4d*p"计算4个平方并打印它

--//也可以先压入10个数字,然后再做乘法运算.
$ echo 10 | dc -e "[la 1 - sa la  la 1<r]sr" -f - -e "sa la la 1<rf"
1
2
3
4
5
6
7
8
9
10

$ echo 10 | dc -e "[la 1 - sa la  la 1<r]sr" -f - -e "sa la la 1<r" -e "[*z1<b]sbz1<bp"
3628800

$ echo 1 | dc -e "[la 1 + sa la  la 10>r]sr" -f - -e "sa la la 10>rf"| dc -f - -e "[*z1<b]sbz1<bp"
3628800

$ dc  -e "$(seq 10)[*z1<b]sbz1<bp"
3628800


标签:10,la,--,dc,20230826,寄存器,sa,txt
From: https://www.cnblogs.com/lfree/p/17659519.html

相关文章

  • 20230826 step03 获取当前异常等级 CurrentEL
    armV8-A架构文档的C5.2.1 在EL0不可用,EL1时。。。。。,返回值前60bits和后2bits都为0修改一下boot.S//Theentrypointisinitsownsection".text.boot"..section".text.boot"//Thesymbol"_start"isthekernel'sentrypoint,makeitgl......
  • 20230826 使用qemu boot gdb
    macOS:brewinstallqemuqemu-system-aarch64--version去https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads下载交叉编译工具链 PREFIX=/Applications/ArmGNUToolchain/12.3.rel1/aarch64-none-elf/bin/aarch64-none-elf-参考https://github......
  • Python使用jieba分词输出txt文件
    1、准备好一个原始的txt文件2、在Pycharm里面下载jieba包3、将txt文件放到项目里面hlm.txt为原始文件;result.txt为存放结果的文件;4、分词代码importjiebaarticle=open('hlm.txt','r',encoding='UTF-8')sent=article.read()sent_list=jieba.cut(sent)resu......
  • 2023版 Adobe Acrobat Pro DC for Mac & Win Install 教程
    AdobeAcrobatProDCforMac 是一款由Adobe公司出品的PDF文件编辑和阅读软件,全新的AdobeAcrobatProDC带有AdobeDocumentCloud服务。Acrobat,这是世界各地的现代人的工作方式全球逾500万个组织依赖Acrobat来创建和编辑PDF,以及将PDF转换成MicrosoftOffice格式等。当......
  • DCL-权限控制
      ......
  • 环AD20230826
    0x00这是笔者对一些琐碎事物的观点。本文与笔者曾述的补完以及理解论相承,前作两者尽力地使用语言呈现环,但对大多读者似乎并无启发。现在笔者十分怠惰,仅为此时所成之环从简记录。对笔者而言的重要启发是不久前的一个梦,梦中笔者成为一个不存在视觉与听觉的恐鱼,甚至无法理解方位。......
  • [20230825]dc命令复杂学习.txt
    [20230825]dc命令复杂学习.txt--//前几天学习dc使用,我当时最后举了一个累加的例子,里面--//-e后面那一串什么意思,即使看了mandc文档,我当时也没看懂表示什么意思.尝试看了man文档,简单解析如下:--//我从文档里面取出相关说明:[characters]Makesastringcontainingcharacters......
  • Android零基础入门 | 广播机制 Broadcast
    Android应用可以通过广播从系统或其他App接收或发送消息。类似于订阅-发布设计模式。当某些事件发生时,可以发出广播。系统在某些状态改变时会发出广播,例如开机、充电。App也可发送自定义广播。广播可用于应用间的通讯,是IPC的一种方式。广播的种类广播的种类也可以看成是广播的属性......
  • AP6315 DC单节锂电池充电IC 同步2A锂电芯片
    概述是一款面向5V交流适配器的2A锂离子电池充电器。它是采用1.5MHz固定频率的同步降压型转换器,因此具有高达90%以上的充电效率,自身发热量极小。包括完整的充电终止电路、自动再充电和一个达±1%的4.2V预设充电电压,内部集成了防反灌保护、输出短路保护、芯片及电池温度保护等多种功......
  • BOSHIDA DC电源模块在工业自动化中的应用
    BOSHIDADC电源模块在工业自动化中的应用随着工业自动化的快速发展,电子技术的不断进步,DC电源模块已经成为了工业自动化领域中的重要组成部分之一。DC电源模块广泛应用于各种自动化设备中,如PLC、DCS、机器人、变频器等。本文将从以下几个方面详细介绍DC电源模块在工业自动化中的应......