鱼C论坛

 找回密码
 立即注册
查看: 1865|回复: 11

大家帮忙找错误

[复制链接]
发表于 2012-10-31 15:48:17 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code
code segment
        mov ax,2000h
        mov ds,ax
        mov ax,2
        mov dx,0
        mov [dx],al
        mov cx,123
   s:            add [dx],al
        loop s

        mov ax,4c00h
        int 21h
code ends
end


补充内容 (2012-10-31 15:49):
编译不过去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:00:56 | 显示全部楼层
mov [dx],al
add [dx],al
这两句引起的 汇编源代码中不让这么写吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:04:36 | 显示全部楼层
assume cs:code
code segment
         mov ax,2000h
         mov ds,ax
         mov ax,2
         mov dx,0
         mov ds:[dx],al
         mov cx,123
    s:   add ds:[dx],al
         loop s

        mov ax,4c00h
         int 21h
code ends
end
这样也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:05:29 | 显示全部楼层
assume cs:code
code segment
         mov ax,2000h
         mov ds,ax
         mov ax,2
         mov dx,0
         mov ds:[0],al
         mov cx,123
    s:   add ds:[0],al
         loop s

        mov ax,4c00h
         int 21h
code ends
end
只有这样可行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:16:47 | 显示全部楼层
mov bl,[bx]
这样可行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:17:58 | 显示全部楼层
mov bl,ds:[bx]
这样可行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:19:37 | 显示全部楼层
mov bl,ds:[cx]
mov bl,[cx]
这样都不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:28:50 | 显示全部楼层
结论 dx cx跟ax bx寄存器性质不同:'(
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:29:27 | 显示全部楼层
cx计数的 dx干嘛用的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:44:01 | 显示全部楼层
AX BX CX DX是CPU内部的通用寄存器中的数据寄存器,数据寄存器一般用于存放参与运算的数据或运算的结果,每一个数据寄存器都是16位的(即16个二进制位), 但又可以将高,低8位分别作为两个独立的8位寄存器使用.它们的高8位记作AH,BH,CH,DH,低8位记作AL,BL,CL,DL.这种灵活的使用方法给编程带来极大的方便,既可以处理16位数据,也能处理8位数据.
数据寄存器除了作为通用寄存器使用外,它们还有各自的习惯用法
AX 称为累加器,常用于存放算术逻辑运算中的操作数,另外所有的I/O指令都使用累加器与外设接口传送信息
BX 称为基址寄存器,常用来存放访问内在时的基地址,
CX 称为计数寄存器,在循环和串操作指令中用作计数器
DX 称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址
另外,在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位.
出自百度!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-10-31 16:45:11 | 显示全部楼层
4个寄存器用法不同:@
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-11-3 16:39:56 | 显示全部楼层
楼主真牛逼,自问自答!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 13:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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