第5章循环程序与分支程序设计祥解.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章循环程序与分支程序设计祥解.ppt

.code start: mov ax,@data mov ds,ax ? mov eax,dword ptr data1 add eax,dword ptr data2 mov edx,dword ptr data1+4 adc edx,dword ptr data2+4 mov dword ptr data3,eax mov dword ptr data3+4,edx mov ax,4c00h int 21h end start ;方法三:使用386的32位运算指令,不用循环结构完成 5.3.2 通用寄存器可作为指针寄存器 32 位通用寄存器可用作指针寄存器,但16位通用寄存器中仍然只有BX、BP、SI、DI可用作指针寄存器,所以下列指令是合法的: MOV EAX,[BX] MOV EAX,[EDX] MOV AX, WORD PTR [ECX] 而下列指令是非法的: MOV AX,[DX] MOV EAX,[CX] 在386及其后继机型中,允许同一寄存器既用于基址寄存器,也用于变址寄存器,因此,下列指令也是合法的: MOV AX,[EBX][EBX] 5.3.3 与比例因子有关的寻址方式 例5.13 用比例变址寻址方式编写一程序, 要求把5个双字相加并保存其结果。 .model small .386 .stack 200h .data array dd 234556h,0f983f5h,6754ae2h,0c5231239h,0af34acb4h result dq ? .code start: mov ax,@data mov ds,ax? sub ebx,ebx mov edx,ebx mov eax,ebx mov cx,5 back: add eax,array[ebx*4] adc edx,0 inc ebx loop back mov dword ptr result,eax mov dword ptr result+4,edx ? mov ax,4c00h int 21h ? end start 例5.14 数据段中有一个20个字节的字节表,还有一个20个字的字表,试编制一程序,把字节表中的每个数据作为字表中的高位字节部分移入字表中。 .model small .386 .stack 200h .data byte_table db 11h,22h,33h,44h,55h,66h,77h,88h,99h,0aah db 12h,23h,34h,45h,56h,67h,78h,89h,9ah,0abh word_table dw 1,2,3,4,5,6,7,8,9,0ah dw 0bh,0ch,0dh,0eh,0fh,10h,11h,12h,13h,14h .code start: mov ax,@data mov ds,ax? xor si,si xor di,di next: mov ax,word_table[di*2] mov ah,byte_table[si] mov word_table[di*2],ax ? inc si inc di ; add di,2 cmp si,20 jl next mov ax,4c00h int

文档评论(0)

love + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档