例6.2 ;在16位段 ;把cx字节长度的数据块从Ds:s工源存储区 ;搬到ES:Dr目的存储区 ror ecx,2;cx的低2位移入了ecx的高2位 rep moved;每次传送双字 rol ecx 1 rep ovsw;传送可能余下的字 rol ecx, 1 rep movsb;传送可能余下的字节
;在16位段 ;把CX字节长度的数据块从DS∶SI源存储区 ;搬到ES∶DI目的存储区 ror ecx,2 ;cx的低2位移入了ecx的高2位 rep movsd ;每次传送双字 rol ecx,1 rep movsw ;传送可能余下的字 rol ecx,1 rep movsb ;传送可能余下的字节 例6.2
第6章 6.332位指令的程序设计 >指定汇编程序识别新指令 >处理16位段和32位段 注意有些指令在16位逻辑段和32位逻辑 段的差别 DOS环境(实地址方式和虚拟8086方式), 只能使用16位段 Windows32位保护方式,可以使用32位段
第 6 章 6.3 32位指令的程序设计 ➢指定汇编程序识别新指令 ➢处理16位段和32位段 ➢注意有些指令在16位逻辑段和32位逻辑 段的差别 DOS环境(实地址方式和虚拟8086方式), 只能使用16位段 Windows 32位保护方式,可以使用32位段
例6.5-1/2 model small 386 ;采用32位指令 stack da七a avar da1234567887654321h;数据定义 code startup mov eax, dword ptr avar mov edx dword ptr avar[4]
例6.5-1/2 .model small .386 ;采用32位指令 .stack .data qvar dq 1234567887654321h ;数据定义 .code .startup mov eax,dword ptr qvar mov edx,dword ptr qvar[4]
例6.5-2/2 mov ecx, 8 start1: shl eax 1 rcl edx 1 1。 op start1 mov dword ptr avar, eax mov dword ptr avar[4], edx exit O end
例6.5-2/2 mov ecx,8 start1: shl eax,1 rcl edx,1 loop start1 mov dword ptr qvar,eax mov dword ptr qvar[4],edx .exit 0 end
例6.6-1/10 model small 386 ;采用32位指令 stack data coun七 equ 10 darray dd20,4500h,3f40hr-1,7f000080h dd 81000000h, 0ffffEfElh dd-45000011,12345678 da87654321 code startup
例6.6-1/10 .model small .386 ;采用32位指令 .stack .data count equ 10 darray dd 20,4500h,3f40h,-1,7f000080h dd 81000000h,0fffffff1h dd -45000011,12345678 dd 87654321 .code .startup