实验5 分支结构程序设计
实验5 分支结构程序设计
一、实验目的
熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
二、实验题
- 以string1为起始地址存放着含有len个字符的字符串,判断该字符串是否存在小写字母,如果有,把CL的第2位置1,否则置0。以下程序不完整,请完善程序,并调试程序回答问题,把运行过程截图附在下面。
DATAS SEGMENT
;此处输入数据段代码
STRING1 DB 'PERSONAL_cOMPUTER','-STRING1
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
LEA SI, STRING1
MOV CX, LEN
AGAIN:
MOV AL,[SI]
CMP AL,‘a’
JG L1
NEXT:
INC SI
DEC CX
JNZ AGAIN
L1:
CMP AL,'z'
JG NEXT
FOUND:
OR CL,02H
NOTFOUND:
AND CL,0FDH
EXIT:
MOV AH,4CH
INT 21H
CODES ENDS
END START
请回答:
完善前:
(1) 程序完善之前,循环结束后,对CL操作之前,CX的值是否为剩余没有被扫描的字符的个数?为什么?
答:不是,循环结束后CX=0009,但是剩余没有被扫描的字符有8个。,它是找到小写字母就直接对CL进行操作了,并没有执行CX-1操作,所以CX=0009而不是0008。
(2) 程序完善后,CX的值为多少?为什么?
CX=000B,循环结束后CX=0009,然后执行FOUND分支,把CL的第2位置1,所以CX由00001001变为00001011,也就是CX=000B。
2.编写程序,x , y , z , v 均为16位带符号数,计算 ( v - ( x*y + z – 540 ) ) / x。把源程序附在下面,并把debug单步调试的截图附在下面。
( v - ( xy + z – 540 ) ) / x = (7777-(3477+99-21C))/34=01DC
三 实验报告
要求: 1.每步操作过程及所用指令;2.用截图方式反应指令执行前后的相关寄存器或存储单元内容的变化,并对所得结果进行分析。
__EOF__
本文链接:https://www.cnblogs.com/tccjx/p/16274926.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:TCcjx,转载请注明原文链接:https://www.cnblogs.com/tccjx/p/16274926.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?