文档详情

汇编语言程序设计章节程研讨清华大学计算机系 毛希平.pptx

发布:2020-03-29约8.54千字共111页下载文档
文本预览下载声明
《汇编语言程序设计》 课程研讨 清华大学计算机系 毛希平;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;标号 指令 寄存器 说明程序或语句的功能 变量 伪指令 标号 宏指令 变量 常数 表达式;实模式编程 保护模式编程(DOS编程 WIN32编程) 完整段定义 简化段定义;…… code segment main proc far assume …… start: …… …… mov ax,4c00h int 21h main endp code ends end start;data segment …… data ends stack segment dw 100 dup (?) tos label word stack ends code segment main proc far assume cs:code, ds:data, ss:stack start: mov ax, stack mov ss, ax mov sp, offset tos push ds sub ax, ax push ax mov ax, data mov ds, ax …… ret main endp code ends end start;;;int main() { int ar0[]={0,1,2}; int ar1[]={1,2,3}; int ar2[]={2,3,4}; int *p[]={ar0,ar1,ar2}; …… } ;.model small .data …… .code .startup …… .exit 0 end ;;;数据定义伪操作 与高级语言(数据类型与变量定义)类比 总结 分类;整数和整数数组 dwFlag dw 0ffffh val1 SWORD -32768 ; 最小的16位有符号数 val2 BYTE 255 ; 最大的8位无符号数 MASM6.0以上的编译器专门提供了无符号数定义伪指令(BYTE、WORD、DWORD等)和有符号数定义伪指令(SBYTE、SWORD、SDWORD等)。;例: array1 SDWORD 1,2,3,4,5,6,7,8,9,10 array2 BYTE 41h,42h,43h,44h,45h,46h,47h,48h,49h, 4ah,4bh,4ch,4dh,4eh,4fh,50h,51h,52h,\ 53h,54h,55h,56h,57h,58h,59h,5ah array3 BYTE “ABCDEFGHIJKLMNOPQRSTUVWXYZ” array4 SWORD 1,0,0,0 SWORD 0,1,0,0 SWORD 0,0,1,0 SWORD 0,0,0,1 array5 SWORD 1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1;例: array3 BYTE “ABCDEFGHIJKLMNOPQRSTUVWXYZ” …… cld mov esi, offset array3 mov edi, esi mov ecx, lengthof array3 again: lodsb add al, 20h stosb loop again ……;指针 ; 定义目标数据对象 val1 SWORD -32768 array3 BYTE “ABCDEFGHIJKLMNOPQRSTUVWXYZ” ; 定义指针 lp1 DWORD val1 ; 保护模式下用DWORD,实模式下用WORD lp2 DWORD array3 或者: lp1 DWORD offset va
显示全部
相似文档