鱼C论坛

 找回密码
 立即注册
查看: 3093|回复: 10

[争议讨论] 关于第27课视频中的那个

[复制链接]
发表于 2011-8-8 14:25:11 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ぃ_夕文 于 2011-8-8 17:55 编辑

关于第27课视频中
重写一次课本中第5.5节 题目是计算FFFF:0~FFFF:B单元中的数据的和,结果存储在DX中
视频中代码如下:
assume cs:code
code segment
    mov ax,0ffffh
        mov ds,ax
        mov bx,0
        mov dx,0
        mov cx,12
       
s:  mov al,[bx]
    mov ah,0
    add dx,ax
    inc bx
    loop s

    mov ax,4c00h
    int 21h
code ends
end       
就是不明白它为什么要赋予ah=0,,,,,不要它行不行??为什么

这个
mov ah,0   //这ah为什么要赋与0?,,想不明白,,谁懂可以告诉我哈,,谢谢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 14:38:17 | 显示全部楼层
ax 分  成 两个8位寄存器  ah 存放高位  al 存放低位     ah=10h   al=20h   那么ax=1020h     为什么赋予ah=0,要看题目的

评分

参与人数 1鱼币 +2 收起 理由
weixianlang + 2 赞一个!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 15:48:21 | 显示全部楼层
这没有为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-8 17:53:24 | 显示全部楼层
课本中第5.5节 题目是计算FFFF:0~FFFF:B单元中的数据的和,结果存储在DX中
视频中代码如下:
assume cs:code
code segment
    mov ax,0ffffh
        mov ds,ax
        mov bx,0
        mov dx,0
        mov cx,12
       
s:  mov al,[bx]
    mov ah,0
    add dx,ax
    inc bx
    loop s
   
    mov ax,4c00h
    int 21h
code ends
end       
就是不明白它为什么要赋予ah=0,,,,,不要它行不行??为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 18:06:35 | 显示全部楼层
al是为了确定后面的[bx]是以字节为计算单元的,ax为字型寄存器,且在前面ax被赋予ffff了,你把低两位改为[bx]中的值,哪高两位还是ff阿,这样你得清空它才正确!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 18:12:28 | 显示全部楼层
所以不能去掉,如果在mov al,[bx]之前添加mov ax,0指令,你所说的那行可以去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-8 20:04:59 | 显示全部楼层
s:  mov al,[bx]
    mov ah,0
    add dx,ax
    inc bx
    loop s

mov al,[bx]
mov ah,0

这段代码的意思是不是指向IP的??? 把ax清空就是0000,
物理地址FFFF:0000 是不是这个意思,,

那  add dx,ax   //是不是 add 0,0000  这个原意?

我还是debug 调试一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 20:31:11 | 显示全部楼层
这不对,你得把寄存器和内存分开!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 20:36:06 | 显示全部楼层
ax是16为寄存器,ax可以分为ah、al两个八位(主要用于兼容八位寄存器),mov跟ah或者al是向cpu说明请给我内面插入一个八位数,mov al,[bx]就是把偏移到bx处的内存八位值插入al,即ax的低八位,而mov ah,0就是说把ax的高八位清0,你觉得它怎么为0?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-8 21:28:57 | 显示全部楼层
:(:(好像懂了
  add dx,ax   //这个AX是不是FFFF呢?
,,,谢谢parbbo,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-8 21:57:08 | 显示全部楼层
好像懂了!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-3-11 01:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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