鱼C论坛

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

025第五章 [BX]和loop指令03的ffff:0006的质疑!!

[复制链接]
发表于 2013-9-12 23:29:11 | 显示全部楼层 |阅读模式
7鱼币
本帖最后由 我是外星猪 于 2013-9-12 23:29 编辑
  1. assume cs:code
  2. code segment
  3.    
  4. start:         mov ax,0ffffh
  5.                  mov ds,ax
  6.                  mov bx,6
  7.                  mov al,[bx]  在视频里这2段标红色的小甲鱼把他们改为了 mov ax,[bx]
  8.                  mov ah,0
  9.                  mov dx,0
  10.          
  11.                 mov cx,123
  12. s:      add dx,ax
  13.                 loop s
  14.          
  15.                 mov ax,4c00h
  16.                 int 21h
  17.          
  18. code     ends
  19. end start
复制代码
问题如下:
假设在FFFF:0006的这段内存值是
EA 5B E0 00 F0 30 31 2F-30 36 2F 31 30 00 FC 00(红色标注的是小甲鱼视频里的ax值)。
小甲鱼说
mov ax,[ bx]

mov al,[bx]  
mov ah,0
是一样的,书的作者多此一举,我试验后发现其实是不一样的。这里是不是小甲鱼的口误?
因为按照小甲鱼那样写,相当于带进去了一个字。带进去一个字的话,乘以123那么肯定会超,就会位丢失。这样的话是否超出了DX的存储范围?因为按照原书那样写肯定不会超出范围,因为传进去的只是字节。
2F31 *7B=16AC8B,但是小甲鱼视频里DX的值是AC8B,他说是正确的。
我的疑问如下:
1、  这两种写法真的是没区别的吗?
2、  按照小甲鱼说的那样是否会丢失位,超出了DX的范围?
3、  如果小甲鱼是对的,那么16AC8B前面的16去了哪里?

最佳答案

查看完整内容

没看过视频,只能单从你的提问来看。 1.当然有区别,一个取字,一个取字节。 2.按照你假设的内存值,绝对会超,溢出,数值错误。 3.逻辑计算结果已经出错了。那计较这个16没任何意义。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-12 23:29:12 | 显示全部楼层
没看过视频,只能单从你的提问来看。
1.当然有区别,一个取字,一个取字节。
2.按照你假设的内存值,绝对会超,溢出,数值错误。
3.逻辑计算结果已经出错了。那计较这个16没任何意义。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-15 20:37:13 | 显示全部楼层
支持鱼C 顶顶~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-19 13:18:42 | 显示全部楼层
来学习的。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-10-3 00:15:30 | 显示全部楼层
我也是来学习的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 05:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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