- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                第3章  基本指令与简单程序设计 3.1 寻址方式  3.2 基本指令  3.3 单个字符的输入输出  3.4 源程序的基本格式  3.5 顺序程序设计  本章要点  习  题  三 学 习 目 标 掌握7种与数据有关的寻址方式及用法, 这是重点,其中存储器寻址方式是难点; 了解外设型寻址方式 3.1  寻址方式 8088的寻址方式较为丰富, 按照操作数的来源分为四类: (1)立即数型。 (2)寄存器型。 (3)内存型。 (4)外设型。 3.1.1  立即数型寻址方式 这种寻址方式直接把参与操作的数据写在指令中,又称为立即数或立即寻址。操作数可以是各种数制下的数值,也可以是带单引号的字符。 	 3.1.3  内存型寻址方式 内存型寻址方式是指参与操作的数据在内存中,因此必须指明操作数究竟在内存的什么地方,即指出内存的逻辑地址。操作数逻辑地址如何表示 【例3.1】设变量buf1和buf2定义在同一个段中,偏移地址分别是102H和3ACH,两个变量对应的缺省段寄存器都是ES,寄存器BX和BP的值分别是2000H和3000H,试计算下列各指令中源操作数的偏移地址值,并判断缺省段寄存器是哪一个。 	(1)MOV  AL,[buf1+BX] 	(2)MOV  AL,[BX+13] 	(3)MOV  AL,[BP+buf1-buf2] 	(4)MOV  AL,[buf2+BP-4000H]  【解】 	(1)偏移地址为 102H+2000H=2102H 段寄存器为buf1对应的缺省段寄存器ES。 	(2)偏移地址为 2000H+13=200DH 段寄存器为BX对应的缺省段寄存器DS。 	(3)偏移地址为 3000H+102H-3ACH=2D56H 段寄存器为BP对应的缺省段寄存器SS。 	(4)偏移地址为 3ACH+3000H-4000H=0F3ACH 段寄存器为buf2对应的缺省段寄存器ES。 【例3.2】设arr是一个整型数组变量,其中存放了10个字型带符号整数,用C语言写出相应的变量定义,编写程序段显示该数组的各元素值;并说明如果使用汇编语言的寄存器相对寻址方式[arr+BX],分别去取各元素,BX应如何变化。 【解】C的变量定义为 int  arr[10] 程序段可写作: for  i 0;i 10;i++ printf “%d\n”,arr[i] ; 在汇编语言中,如果用[arr+BX]的形式分别访问各元素,则BX应分别取值为十进制的0、2、4、6、8、10、12、14、16、18,即每次加2,因为每个整数 字型带符号数 占2字节。  3.1.4  外设型寻址方式 给操作对象逐个编号是计算机的基本处理方法。在8088系统中把内存的每个字节进行编号,形成内存的物理地址,类似地也把控制各种外部设备的接口中的各部件编排号码,每个号码对应的一个外设部件称为一个外设端口,号码本身就是外设地址。  作业 P48---3.3②④⑥⑧⑩⑿ 任务 1. 在屏幕上显示5, 换行后显示A。 2. 计算8*7+3, 并在屏幕上显示其值59。 3. 从键盘读入2个一位数,显示它们的积。 3.2  基本指令 3.2.1  MOV指令 【指令格式】MOV d1,d2 【功能】取d2操作数的值,放到d1操作数指定的位置。 3.2.2  ADD指令 【指令格式】ADD  d1,d2 【功能】把目的操作数d1与源操作数d2相加,结果 放入目的操作数中。加法运算不改变源操作数d2的值。 传送指令MOV 语句格式:MOV  DST,SRC 功能:将源操作数传送入目的地址,源地址内容不变。即(SRC)→DST。 根据操作数所在位置有立即数,寄存器操作数,和存储器操作数。源操作数和目的操作数可以是何类操作数,如何使用才是正确的,下面的示意图描述了MOV指令在传送数据时源和目的操作数所允许的类型及传送的路径(方向)。 该指令不影响标志位。   MOV 指令举例 MOV  AX,BUF ;BUF是字变量 MOV  BH,[DI] ; MOV  DI,ES:3[SI] ;源操作数使用跨段前缀 MOV  AL,  ‘AB’	; MOV  CS,AX MOV  BUFA,DL 	;BUFA是一字节变量 MOV   3,AL  MOV  DS:[BP],DL	;使用跨段前缀 MOV  BUF,DS ;BUF是个字变量 MOV  DS ,DATA_SEG    ;DATA_SEG是某数据段段首址 MOV  BX,AL MOV   DS,ES MOV    [BX],  3 ; MOV  [SI],[BX]  MOV  DS,’ab’ MOV  [BP],AX ;使用SS段寄存器 MOV  BUF,BUF1 ; BUF和BUF1均是字变量 MOV   BX,OFFSET  BUF1 【
                
原创力文档
                        

文档评论(0)