鱼C论坛

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

实验四第二题

[复制链接]
发表于 2012-2-23 13:05:01 | 显示全部楼层 |阅读模式
4鱼币
题目是用9条命令向内存0:200~0:23F依次传送数据0~63h,看了一下答案有一点不理解,
assume cs:codesg
codesg segment
   
   mov ax,0020h
   mov ds,ax
   mov bl,0
   mov cx,40h
s: mov [bx],bl
   inc bl
   loop s

   mov ax,4c00h
   int 21h
上面答案中红色那行不理解,既然 mov bl,0   ,但是bh还没有被赋值,所以mov [bx],bl  中的偏移地址不一定是0000h吧?
        

最佳答案

查看完整内容

刚发了一堆废话删掉了 看错你的意思了现在就应该对了 一般情况下在你编写的程序里在程序开始以后没有对ax bx 赋值的情况下 它们的值都是 0 也就是 ax bx 的值在没改动的情况下初值都是ax=0000 bx=0000 而且mov bl,0 也不是说给bl置0 而是将要0-63h的值放进BL中 !~ E:\TEST\1>debug 2.exe -r AX=0000 BX=0000 CX=006E DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B75 ES=0B75 SS=0B8 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-23 13:05:02 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-2-23 16:24 编辑

刚发了一堆废话删掉了 看错你的意思了现在就应该对了

一般情况下在你编写的程序里在程序开始以后没有对ax bx 赋值的情况下 它们的值都是 0
   也就是 ax bx 的值在没改动的情况下初值都是ax=0000   bx=0000        

  
而且mov bl,0 也不是说给bl置0  而是将要0-63h的值放进BL中 !~


E:\TEST\1>debug 2.exe
-r
AX=0000  BX=0000  CX=006E  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=0B75  ES=0B75  SS=0B85  CS=0B89  IP=0000   NV UP EI PL NZ NA PO NC
0B89:0000 B8850B        MOV     AX,0B85
-t

这是一个程序进入DEBUG以后 在给ax 赋值前各个寄存器的值   ax bx dx 都是0 cx则不是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-23 13:35:46 | 显示全部楼层
本帖最后由 功夫猫 于 2012-2-23 13:40 编辑

mov bl,0
改为mov bx,0
inc bl
改为inc bx           改不改无所谓
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-2-23 16:36:28 | 显示全部楼层

你的意思我懂了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-19 20:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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