鱼C论坛

 找回密码
 立即注册
查看: 3987|回复: 1

[学习笔记] 《零基础入门学习汇编语言》第二十三讲(问题5.1)

[复制链接]
发表于 2017-7-2 22:12:26 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 shuiyu 于 2017-7-6 22:50 编辑

小白刚学,不对的请各位大佬指正,谢谢

一、[bx]和内存单元的描述
(1)[bx]是什么呢?
和[0]有些类似,[0]表示内存单元,它的偏移地址是0。
[bx]同样也表示一个内存单元,它的偏移地址在bx中,比如下面的指令:
mov ax,[bx]
mov al,[bx]
(2)在debug中我们可以用:mov ax,[0]  这样的命令赋值。但是我们在编译器中就不能这样使用了。因为编译器不认识它。
比如我们要给AX赋值10000H这个内存的数值,在编译器中我们要这样用:
mov bx,10000H
mov ax,[bx]
大家都会发现多绕了一步,但是我们没办法,因为编译器不认识。
(3)[bx]具体解释:
mov ax,[bx]
功能:bx 中存放的数据作为一个偏移地址EA ,段地址SA 默认在ds 中,将SA:EA处的数据送入ax中。
即: (ax)=(ds *16 +(bx));

mov [bx],ax
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。
即:(ds *16 +(bx))  =  (ax)


二、loop、描述性符号“()”(其实就是取括号内的内容)、约定符号idata表示常量
(1)loop:英文单词“loop”有循环的含义,显然这个指令和循环有关。
(2)为了描述上的简洁,在以后的课程中,我们将使用一个描述性的符号 “() ”来表示一个寄存器或一个内存单元中的内容。
1.ax中的内容为0010H,我们可以这样来描述:(ax)=0010H;
2.2000:1000 处的内容为0010H,我们可以这样来描述:(21000H)=0010H;
3.对于mov ax,[2]的功能,我们可以这样来描述:(ax)=((ds)*16+2);
4.对于mov [2],ax 的功能,我们可以这样来描述:((ds)*16+2)=(ax);
5.对于 add ax,2 的功能,我们可以这样来描述:(ax)=(ax)+2;
6.对于add ax,bx的功能,我们可以这样来描述:(ax)=(ax)+(bx);
7.对于push ax的功能,我们可以这样来描述:
(sp) = (sp)-2
((ss)*16+(sp))=(ax)
8.对于pop ax 的功能,我们可以这样来描述:
(ax)=((ss)*16+(sp))
(sp)=(sp)+2

(3)我们在Debug 中写过类似的指令:mov ax,[0],表示将 ds:0 处的数据送入ax中。指令中,在“[…]”里用一个常量0表示内存单元的偏移地址。以后,我们用idata表示常量。
例如:
mov ax,[idata]就代表mov ax,[1]、mov ax,[2]、mov ax,[3]等。
mov bx,idata就代表mov bx,l、mov bx,2、mov bx,3等。
mov ds,idata就代表mov ds,1、mov ds,2等,它们都是非法指令。

问题5.1
(1)问题主要考我们的就是[bx]的应用。
(2)最后我们得出:
21000H=BE
21001H=00
21002H=BE
21003H=00
21004H=BE
21005H=BE
21006H=BE
21007H=20(最后这个空题目没有赋值,所以就看你的电脑原来是什么值,那就是什么值了)

附上我自己的答案:
1.PNG


谢谢小甲鱼带来的视频教程,感谢!!


   
本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢

评分

参与人数 2荣誉 +3 鱼币 +8 收起 理由
不二如是 + 3 + 3 感谢楼主无私奉献!
小甲鱼 + 5

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-4 16:31:09 | 显示全部楼层
我21000到21006都理解,但是我最后21007却是BE,我这样是正确的还是哪里出错了
_@F1FU(3CVFIC4A8D@YA(EQ.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 11:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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