鱼C论坛

 找回密码
 立即注册
查看: 3462|回复: 3

[技术交流] 汇编视频25里有个错误,可能我不是第一个发现的,但是还是说一下

[复制链接]
发表于 2011-8-12 15:51:46 | 显示全部楼层 |阅读模式

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

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

x
题目要求将ffff6H地址的内存单元的值(一个字节),乘3,放到寄存器dx中
正确的程序如下:
assume cs:mycode;假设mycode为代码段
mycode segment;定义一个段,段名为mycode
beg:;标号
   mov ax,0ffffH
   mov ds,ax
   mov bx,0006H
   mov ah,0
   mov al,[bx]
   mov dx,0
   mov cx,3
lo:  add dx,ax
   loop lo
   inc bx
   mov ax,4C00H;程序返回
   int 21H
mycode ends;结束段
end beg;结束程序,同时告诉编译器,程序入口的标号是beg
视频里面说mov ah,0     mov al,[bx] 这两句是多此一举,可以改为 mov ax,[bx]
这个观点是错误的,假设ffff6的内存是这样的: F2 EB
mov ah,0
   mov al,[bx]  结果ax为 00F2H
mov ax,[bx]   结果ax为EBF2H,乘3就越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-12 18:47:53 | 显示全部楼层
视频里面说mov ah,0     mov al,[bx] 这两句是多此一举,可以改为 mov ax,[bx]

这句话的确是错的,后者以word形式传递数据,前者以byte形式传递数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-2 22:49:06 | 显示全部楼层
看帖就要回帖支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-2 23:18:36 | 显示全部楼层
看看老帖,支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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