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

网站建设平台 三合一企业网站模板哪里好

网站建设平台 三合一,企业网站模板哪里好,自适应营销网站,2024年新冠会消失吗title: 汇编求和实验 keywords: 汇编 tags: [汇编] categories: 嵌入式 汇编求和实验 刚开始学习汇编 给大家做个参考 实验 5 子程序 5.1 实验目的 ①掌握利用堆栈传递参数的子程序调用方法。 ②过程调用伪指令#xff1a;PROC#xff0c;ENDP#xff0c;NEAR和FAR。 ③8088… title: 汇编求和实验 keywords: 汇编 tags: [汇编] categories: 嵌入式 汇编求和实验 刚开始学习汇编 给大家做个参考 实验 5 子程序 5.1 实验目的 ①掌握利用堆栈传递参数的子程序调用方法。 ②过程调用伪指令PROCENDPNEAR和FAR。 ③8088指令CALLRETRETn。 5.2 实验类型 验证型实验\2. 操作步骤 ①输入编译并运行程序。 ②用emu8086运行此程序观察并记录每次过程调用及进出栈指令前后的SP和堆栈内容。 ③记录最后结果SUM1SUM2的段及偏移地址和它们的内容。 ④修改并自编程序使得在屏幕上可以输入任意6个十进制数字同时在屏幕上输出SUM1 的结果要求输出十进制数字打印出有效2位数即可。 AX这是一个通用寄存器通常用于算术和逻辑操作。在这段程序中它被用来存储 DATAS 段的地址然后这个地址被移动到 DS 寄存器。 DS这是一个段寄存器用于存储数据段的地址。在这段程序中它被设置为 DATAS 段的地址这样程序就可以访问在 DATAS 段中定义的数据了。 SI这是一个索引寄存器通常用于存储数组或字符串的索引。在这段程序中它被用来存储 DATA 数组的当前索引。 CX这是一个计数寄存器通常用于存储循环的次数。在这段程序中它被设置为6表示输入循环的次数。 DX这是一个通用寄存器通常用于I/O操作。在这段程序中它被用来存储字符串的地址然后这个地址被用于 INT 21H 中断以打印字符串。 AH这是 AX 寄存器的高8位通常用于存储操作码。在这段程序中它被设置为9表示打印字符串的操作。 DI这是一个索引寄存器通常用于存储数组或字符串的索引。在这段程序中它被初始化为0用于打印总和。 修改并自编程序使得在屏幕上可以输入任意6个十进制数字同时在屏幕上输出SUM1 的结果要求输出十进制数字打印出有效2位数即可。 DATAS SEGMENTstring_1 DB input,$ ; 提示输入string_2 DB input again,$ ; 无效输入的错误消息string_3 DB ,$ ; 空格字符DATA DW 10 DUP(?) ; 存储输入数字的数组message DB 0ah,sum:,0DH,$ ; 总和输出的消息 DATAS ENDSSTACKS SEGMENTDW 256 dup(?) STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX ; 设置DS寄存器指向DATAS段MOV SI, 0 ; 指针初始化MOV CX, 6 ; 循环次数MOV DX, OFFSET string_1 ; 提示输入MOV AH, 9INT 21HLp:CALL Input ; 调用输入子程序ADD SI, 2 ; 指针增加2每个输入数字占2个字节Loop Lp ; 循环直到所有数字输入完毕MOV DX, OFFSET message ; 打印总和消息MOV AH, 9INT 21HCALL Get_sum ; 调用Get_sum子程序计算总和MOV DX, AXADD DX, 30HMOV AH, 2INT 21HMOV AH, 4CH INT 21HInput PROC Nearpush AX push BXpush CX push DX MOV BX, 0 CLC ; 清除进位标志MOV DX, 0 Lp_0:MOV AH, 1INT 21H ; 从输入中读取一个字符CMP AL, 20H ; 检查输入是否为空格字符JE L_CRLF ; 如果是空格跳转到L_CRLFSUB AL, 30H ; 将ASCII转换为整数MOV AH, 0 ; 清除AH寄存器XCHG AX, BX ; 交换AX和BX寄存器JMP Lp_0 ; 继续输入循环L_CRLF: ; 输入结束标记换行MOV DX, 0MOV DATA[SI], BX ; 将输入数字存储在DATA数组中POP DXPOP CXPOP BXPOP AXRET Input ENDPGet_sum PROC NEARPUSH BXPUSH CXMOV BX, 0MOV CX , 6MOV DI, 0LOP1:MOV AX, DATA[DI]ADD BX, AXADD DI , 2LOOP LOP1MOV AX, BXPOP BXPOP CXRET Get_sum ENDPCODES ENDS END STARTInput过程是一个子程序用于读取用户的输入。它首先将AX、BX、CX和DX寄存器的值压入堆栈以保存它们的当前状态。然后它使用DOS中断21H的功能1来读取用户的输入。如果输入是空格ASCII值为20H则结束输入否则将输入的ASCII值转换为数字并存储在BX寄存器中。最后将BX寄存器的值存储在DATA数组中并恢复AX、BX、CX和DX寄存器的值。 Get_sum过程是另一个子程序用于计算DATA数组中的所有数字的和。它首先将BX和CX寄存器的值压入堆栈以保存它们的当前状态。然后它初始化BX寄存器为0用于存储和初始化CX寄存器为6表示要加的数字的数量初始化DI寄存器为0表示数组的索引。然后它在循环中将DATA数组中的每个数字加到BX寄存器中。最后将和存储在AX寄存器中并恢复BX和CX寄存器的值。 但这个有致命缺点 笑死了 直接加0x30得到十进制数字就是 只有0-9可以正常输出结果 首先它将12赋值给AX寄存器然后将10赋值给CL寄存器。然后它使用div cl指令将AX寄存器的值除以CL寄存器的值。在这个操作后商也就是十位数存储在AL寄存器中余数也就是个位数存储在AH寄存器中。然后它将AH寄存器的值复制到BH寄存器中。 然后它检查AL寄存器的值是否为0。如果AL寄存器的值为0那么它将跳转到tito标签否则它将继续执行。 接下来它将AL寄存器的值复制到DL寄存器中然后将DL寄存器的值增加30H因为在ASCII编码中数字字符的编码是从30H开始的。然后它将AH寄存器的值设置为2然后调用DOS中断21H的功能2将DL寄存器中的字符输出。 在tito标签处它将BH寄存器的值复制到DH寄存器中然后将DH寄存器的值增加30H。然后它将AH寄存器的值设置为2然后调用DOS中断21H的功能2将DH寄存器中的字符输出。 DATAS SEGMENTstring_1 DB input,$ ; 提示输入string_2 DB input again,$ ; 无效输入的错误消息string_3 DB ,$ ; 空格字符DATA DW 6 DUP(?) ; 存储输入数字的数组message DB sum:,0ah,$ ; 总和输出的消息 DATAS ENDSSTACKS SEGMENTDW 256 dup(?) STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX ; 设置DS寄存器指向DATAS段MOV SI, 0 ; 指针初始化MOV CX, 6 ; 循环次数MOV DX, OFFSET string_1 ; 提示输入MOV AH, 9INT 21HLp:CALL Input ; 调用输入子程序ADD SI, 2 ; 指针增加2每个输入数字占2个字节Loop Lp ; 循环直到所有数字输入完毕MOV DX, OFFSET message ; 打印总和消息MOV AH, 9INT 21HCALL Get_sum ; 调用Get_sum子程序计算总和存到axmov cl, 10div cl mov bh,ah cmp al, 0je tito ;十位为零 跳转titoMOV Dl, al ADD dl, 30HMOV AH, 2INT 21H tito:MOV Dl, bh ADD dl, 30HMOV AH, 2INT 21H Input PROC Nearpush AX push BXpush CX push DX MOV BX, 0 CLC ; 清除进位标志MOV DX, 0 Lp_0:MOV AH, 1INT 21H ; 从输入中读取一个字符CMP AL, 20H ; 检查输入是否为空格字符JE L_CRLF ; 如果是空格跳转到L_CRLFSUB AL, 30H ; 将ASCII转换为整数MOV AH, 0 ; 清除AH寄存器XCHG AX, BX ; 交换AX和BX寄存器JMP Lp_0 ; 继续输入循环L_CRLF: ; 输入结束标记换行MOV DX, 0MOV DATA[SI], BX ; 将输入数字存储在DATA数组中POP DXPOP CXPOP BXPOP AXRET Input ENDPGet_sum PROC NEARPUSH BXPUSH CXMOV BX, 0MOV CX , 6MOV DI, 0LOP1:MOV AX, DATA[DI]ADD BX, AXADD DI , 2LOOP LOP1MOV AX, BXPOP BXPOP CXRET Get_sum ENDPCODES ENDS END START如此我们便完成这节课的任务了
http://www.w-s-a.com/news/560883/

相关文章:

  • 免费的黄冈网站有哪些平台可以聊天呢要查询一个网站在什么公司做的推广怎么查
  • 凡客建站登录入口网站建设先进部门评选标准
  • 响应式设计 手机网站政务中心建设网站
  • 如何做卖衣服的网站网站登录接口怎么做
  • 网站源码下载了属于侵权吗499全包网站建设
  • 怎样创建网站信息平台网络推广官网首页
  • 网站建设的课程网站 逻辑结构
  • 开通企业网站搬瓦工暗转wordpress
  • 成都网站建设有名的公司怎么做出有品牌感的网站
  • 中国网站的建设淘宝数据网站开发
  • 深圳建站网站模板wordpress 文章最长
  • 服务器建立网站建网站做seo
  • 帮人做彩票网站支付接口网上请人做软件的网站
  • 万全网站建设wl17581做旅游广告在哪个网站做效果好
  • 钢城网站建设安徽省住房和城乡建设厅网站
  • 协会网站建设方案大良营销网站建设好么
  • 网站引导页一般是什么格式网页设计师的应聘岗位
  • 构建网站空间网站开发与维护招聘
  • 网站建设的网页怎么做番禺网站开发哪家强
  • 网站开发是程序员吗百度网盘下载电脑版官方下载
  • 中国电力建设集团网站杭州网站运营
  • 大气网站模板下载效果好的网站建设公
  • 住房和城乡建设部网站打不开重庆市建设工程信息网官网30系统
  • 做美食软件视频网站大数据精准营销策略
  • 网站后台密码错误陕西大型网站建设
  • 网站建站中关键字搜索怎么弄wordpress 后台插件无法访问
  • 做减肥餐的网站网站优化注意事项
  • 做网站做推广有效果吗专门做淘宝优惠券的网站
  • 菜谱网站开发系统ps做网页效果图
  • 徐州品牌网站建设wordpress多重筛选页面