当前位置: 首页 > news >正文

无形资产 网站开发wordpress调用头部

无形资产 网站开发,wordpress调用头部,软件开发服务费税率,中国住建部和城乡建设部目录 Lab. 1 初代编译器实验说明和要求一、初代编译器功能描述二、初代编译器文法要求三、初代编译器测试样例四、初代编译器提交要求五、初代编译器实验测试框架说明 代码与思路 Lab. 1 初代编译器实验说明和要求 一、初代编译器功能描述 初代编译器将 C 语言顺序语句序列翻… 目录 Lab. 1 初代编译器实验说明和要求一、初代编译器功能描述二、初代编译器文法要求三、初代编译器测试样例四、初代编译器提交要求五、初代编译器实验测试框架说明 代码与思路 Lab. 1 初代编译器实验说明和要求 一、初代编译器功能描述 初代编译器将 C 语言顺序语句序列翻译为等价的汇编程序所输出的汇编程序符合 x86 汇编语言格式要求能够被后续的汇编器翻译为可执行程序运行。 二、初代编译器文法要求 初代编译器能够处理的文法如下所示 关键字int、 return 标识符单个英文字母 常量十进制整型如 1、223、10 等 操作符、、-、*、/、(、) 分隔符; 语句表达式语句、赋值语句其中表达式语句包含括号及括号嵌套 三、初代编译器测试样例 测试用例难度分为两个等级其中第一个等级每个表达式中操作符优先级相同且无括号第二个等级同一个表达式中会有不同优先级且包含有嵌套的括号。测试用例中第一个等级测试用例占比 90%第二个等级的测试用例占比 10%。 所有输入测试样例文件中单词之间均由空格或者回车分隔输入文件中可能存在多个连续的空格或者回车。 评分依据 return 的值是否符合预期。 等级一输入样例 int a ; int b ; int d ; a 1 ; b 2 ; d a b ; return d ; 预期返回值为 3等级一输出样例 x86 mov DWORD PTR [ebp-4], 0 # int a mov DWORD PTR [ebp-8], 0 # int b mov DWORD PTR [ebp-12], 0 # int d mov DWORD PTR [ebp-4], 1 # a 1 mov DWORD PTR [ebp-8], 2 # b 2 mov eax, DWORD PTR [ebp-4] # d a b push eax mov eax, DWORD PTR [ebp-8] push eax pop ebx pop eax add eax, ebx push eax pop eax mov DWORD PTR [ebp-12], eax mov eax, DWORD PTR [ebp-12] # return d等级二输入样例 int a ; int b ; int c ; int d ; a 1 ; b 2 ; c 3 ; d ( a b * 2 ) / c – 3 ; return d ; 预期返回值为-2等级二输出样例 x86 用例 2 的期待输出: (你的输出中不必输出#行的内容) # int a ; mov DWORD PTR [ebp-4], 0 # int b ; mov DWORD PTR [ebp-8], 0 # int c ; mov DWORD PTR [ebp-12], 0 # int d ; mov DWORD PTR [ebp-16], 0 # a 1 ; mov DWORD PTR [ebp-4], 1 # b 2 ; mov DWORD PTR [ebp-8], 2 # c 3 ; mov DWORD PTR [ebp-12], 3 # d ( a b * 2 ) / c - 3 mov eax, DWORD PTR [ebp-4] push eax mov eax, DWORD PTR [ebp-8] push eax mov eax, 2 push eax pop ebx pop eax imul eax, ebx push eax pop ebx pop eax add eax, ebx push eax mov eax, DWORD PTR [ebp-12] push eax pop ebx pop eax cdq idiv ebx push eax mov eax, 3 push eax pop ebx pop eax sub eax, ebx push eax pop eax mov DWORD PTR [ebp-16], eax # return d mov eax, DWORD PTR [ebp-16]四、初代编译器提交要求 实现语言C语言标准 c14 编译环境g -11 测试环境gcc -11 提交内容单个 cpp 源文件文件名称为 compilerlab1.cpp 输入输出实现的编译器有一个命令行参数用于指明输入文件路径编译器从该路径读取源码并向 stdout 输出编译结果。 注g用于编译你提交的编译器实验源码gcc 用于将你的编译器实验输出的 x86 汇编码编译成可执行文件用于测试。 五、初代编译器实验测试框架说明 为了方便测试实验提供了一个测试框架用于测试你的编译器实验。 x86 汇编的测试框架 .intel_syntax noprefix # 使用 Intel 语法 .global main # 声明 main 函数为全局符号这使得链接器能够识别程序 的入口点。 .extern printf # 声明外部函数 printf表示该函数在其他地方定义通 常是 C 标准库中。 .data # 开始数据段用于定义程序中的初始化数据。 format_str:.asciz %d\n # 定义一个用于 printf 的格式字符串输出整数并换行。 .text # 开始代码段包含程序的实际指令。 main:push ebp # 将基指针寄存器 ebp 的当前值压入堆栈保存上一个函 数栈帧的基指针mov ebp, esp # 将栈指针 esp 的值复制到基指针 ebp 设置新的栈帧 基指针sub esp, 0x100 # 从栈指针 esp 减去 256 字节为局部变量分配栈空间 ################################################## ## ## 你的编译器实验输出的 x86 汇编码将被插入到这里 ## ################################################### 打印 d (当前 eax 的值)push eax # 将结果 (eax 的值) 作为 printf 的参数push offset format_str # 将格式字符串的地址作为 printf 的参数call printf # 调用 printf 函数add esp, 8 # 清理栈# 恢复 eax 的值并退出 mainpop eaxleaveret你的编译器实验输出的 x86 汇编码将会被插入到上述框架中。 为了便于评测本实验框架将会自动调用 C 库的 printf 函数输出你的编译器实验输出的 x86 汇编码中的返回值即 eax 的内容。 代码与思路 考虑到代码会查重以及隔壁3月16号大哥的惨案我不会给出具体的代码。至少要过半年我才会补上代码 请同学们自己完成代码。 我会给出一些实验注意事项该部分主要阐述本人在做该实验时踩过的坑为大家提供一部分参考。 注意按照平台要求的命令行输入输出否则提交无效关于测试用例8需要处理可能出现的回车可能出现一条语句中间被回车截断如 int a ; a 1 ; // 一条语句 a 1 ; 被拆成了多行输入 return a ; // 还可能会出现同一行多条语句例如 int b ; int c ; b 1 ; c 2 ;请注意以上情况。 关于测试用例3和7注意处理直接赋变量的值的语句如 int a ; int b ; a 1 ; // 对于这一句直接把1存入a即可即 mov DWORD PTR [ebp-4], 1 b a ; // 对于这一句容易写成把a的值直接mov到b中然而这样做是错的要先从a取出放到eax再从eax取出放到b return b ;这里再贴两组用例供大家测试。 输入用例 3: (试试直接赋值,顺便试试大写字母) int a ; int A ; int B ; a 1 ; A a ; B A / a ; return B ;用例 3 的期待输出: (你的输出不必像我这里特意搞空行) mov DWORD PTR [ebp-4], 0mov DWORD PTR [ebp-8], 0mov DWORD PTR [ebp-12], 0mov DWORD PTR [ebp-4], 1mov eax, DWORD PTR [ebp-4] mov DWORD PTR [ebp-8], eaxmov eax, DWORD PTR [ebp-8] push eax mov eax, DWORD PTR [ebp-4] push eax pop ebx pop eax cdq idiv ebx push eax pop eax mov DWORD PTR [ebp-12], eaxmov eax, DWORD PTR [ebp-12]输入用例 4: (莫名其妙的换行) int p ; int q ; p 1 ; qp p ; return q ;用例 4 的期待输出: (你的输出不必像我这里特意搞空行) mov DWORD PTR [ebp-4], 0mov DWORD PTR [ebp-8], 0mov DWORD PTR [ebp-4], 1mov eax, DWORD PTR [ebp-4] push eax mov eax, DWORD PTR [ebp-4] push eax pop ebx pop eax add eax, ebx push eax pop eax mov DWORD PTR [ebp-8], eaxmov eax, DWORD PTR [ebp-8]以上。 someday我会把我的代码补充进来顺便在git上再发一份 但不是现在:) 发布后的一小时后补充 我忘记写思路了2333 你可以直接 if 如果遇到了 int就输出 mov DWORD PTR [ebp-%d], 0如果遇到了 就说明是等式可能是赋值或可能是算式如果遇到了 return就输出 mov eax, DWORD PTR [ebp-%d]并结束程序 对于遇到了 右边只有一个数字右边只有一个字母如果不是前两者说明是算式 如果是算式 用我们以前学过的和栈有关的知识去做下面是我的处理手段 定义两个栈op 用来存储符号v 用来存储值如果是数字如果是字母如果既不是数字也不是字母那就说明是符号 如果是 (如果是 )如果是 * 或 /如果是 或 -当然你也可以先转换成前缀表或者后缀表达式再用相应的方法处理自己去百度吧 你也可以使用正则表达式 如果这些方法都不合你的胃口那你问问身边的人方法真的很多。 我就点到为止吧剩下的靠你们自己了笔芯。 祝大家早日AC 如果有什么思路上的问题或者编译上的问题总之跟这个实验有关的都可以问我要是有空会回答的。
http://www.dnsts.com.cn/news/151202.html

相关文章:

  • 潍坊网站建设价厦门开发网站公司
  • 建设网站的软件下载威海市环翠区建设局网站
  • 成都那家网站建设好免费一键logo在线设计
  • 甜品店网站建设的目的哪些网站可以做装修
  • 银川做网站哪家好店面设计说明
  • 中山网站推广wordpress 数据库用户
  • python官方网站友情链接软件
  • 做网站的时候用的什么框架一般的电脑培训班要多少钱
  • 且未县建设局网站东莞通网上营业厅
  • 竭诚网络网站建设价格学习网站开发培训
  • 不用代码可以做网站设计吗自己做网站广告
  • 合肥做网站公如何自己建立一个网站
  • 青岛网站建设定制深圳发型网站建设
  • 九江做网站开发需要多少钱wordpress jquery ui
  • 网站关键词百度排名在下降邓州网站设计
  • 长沙有哪些网站建设公司好服务器网站建设教程
  • 交通门户网站建设绵阳做绵阳做网站网站
  • 网站开发全景网站是怎么做的
  • 做网站工单成都市建设部官方网站
  • 外贸网站管理系统合肥网站建设q479185700強
  • 丰台区建设网站遵义网警
  • 做外贸兼职的网站设计大连旅顺口
  • wordpress手机网站插件郑州新感觉会所网站哪里做的
  • 正邦高端网站建设重庆德旺广网络科技有限公司
  • 武功网站开发非自己的网站如何做二次跳转
  • 有哪些可以在网上做兼职的网站江苏品牌网站建设
  • 精品资源共享课网站建设 碧辉腾乐上海设计公司 快消品
  • 帮别人做彩票网站小企业网站建设怎样
  • 深圳杰恩创意设计有限公司网站互联网产品推广是做什么的
  • 鲜花网站建设策划方案酒店管理专业建设规划