鱼C论坛

 找回密码
 立即注册
查看: 5175|回复: 4

[汇编作业] 检测点9.3

[复制链接]
发表于 2018-8-22 20:05:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. DATAS SEGMENT
  2.     ;此处输入数据段代码  
  3. DATAS ENDS

  4. STACKS SEGMENT
  5.     ;此处输入堆栈段代码
  6. STACKS ENDS

  7. CODES SEGMENT
  8.     ASSUME CS:CODES,DS:DATAS,SS:STACKS
  9. START:
  10.     MOV AX,DATAS
  11.     MOV DS,AX
  12.    
  13.     mov bx,0
  14.   s:mov cl,[bx]
  15.         mov ch,0
  16.         inc cx
  17.         inc bx
  18.         loop s
  19.        
  20. ok:dec bx
  21.         mov dx,bx
  22.    
  23.     MOV AH,4CH
  24.     INT 21H
  25. CODES ENDS
  26.     END START
复制代码






其实一开始的时候那个空我写的是jcxz ok;但是我感觉如果这样写的话和上一道题有什么很大的差别呢?然后我就去找了其他前辈写的代码,
发现其实有很多人一开始也跟我一样写的是jcxz;后来有一位前辈解释了,如果ds:[bx]处的值为1,那么jcxz不会运行,然后往下loop指令会先将cx-1得到cx=0;那么就会跳出循环继续像下走,走到ok标识处,这样得到的bx是错误的。如果cl处为0的话,应该将其+1再由loop指令将cx的值去减一;然后就会得到正确的bx了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-23 14:56:56 | 显示全部楼层
6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-27 18:17:46 | 显示全部楼层
谢谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-18 17:37:06 | 显示全部楼层
解释的很明确
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-18 17:41:52 | 显示全部楼层
我觉的,假如 CX 为0,执行减1的话,是不是变成FFFF,就不会往下执行,死循环了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 16:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表