汇编语言程序设计总复习_第1页
汇编语言程序设计总复习_第2页
汇编语言程序设计总复习_第3页
汇编语言程序设计总复习_第4页
汇编语言程序设计总复习_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级2l教材教材ibm-pcibm-pc汇编语言程序设计汇编语言程序设计第第2 2版版清华大清华大学出版社,学出版社,20072007年年5 5月第月第2020次印刷,沈美明等次印刷,沈美明等著。著。l参考书参考书1180x8680x86汇编语言程序设计教程汇编语言程序设计教程,杨季文,杨季文等著,清华大学出版社。等著,清华大学出版社。22汇编语言程序设计汇编语言程序设计,钱晓捷著,电子,钱晓捷著,电子工业出版社。工业出版社。33ibm-pcibm-pc汇编语言程序设计实验教程汇编语言程序设计实验教程

2、,沈美明著,清华大学出版社。沈美明著,清华大学出版社。 数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级3第1章 汇编语言基础知识第2章 80x86计算机组织第3章 80x86指令系统和寻址方式第4章 汇编语言程序格式第5章 循环与分支程序设计第6章 子程序结构第7章 高级汇编语言技术第8章 输入/输出和中断程序设计目录数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级4期末考试考试日期考试日期20122012年年1 1月月5 5日上午日上午考试地点考试地点文虎楼文虎楼503503考试形式考试形式

3、闭卷笔试闭卷笔试考试时间考试时间120120分钟分钟考试题型考试题型a a卷卷b b卷卷单项选择题单项选择题 1 120202020分分(20(20题题) )单项选择题单项选择题1 120202020分分(20(20题题) )指令分析题指令分析题2 215153030分分(5(5题题) )判断题判断题1 110101010分分(10(10题题) )程序填空题程序填空题3 310103030分分(5(5题题) )简答题简答题2 24 48 8分分(2(2题题) )程序(段程序(段) )编制编制2 210102020分分(2(2题题) )程序分析题程序分析题5 56 63030分分(5(5题题)

4、)程序填空题程序填空题3 34 41212分分(2(2题题) )程序(段程序(段) )编制编制6+6+8=206+6+8=20分分(3(3小题小题) )数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级5第1章 教学要求1 1教学目的:掌握汇编语言概念极其使用的进位计数教学目的:掌握汇编语言概念极其使用的进位计数制、不同进位计数制之间的转换、计算机编码以及基制、不同进位计数制之间的转换、计算机编码以及基本数据类型。本数据类型。2 2教学要求:教学要求: 了解汇编语言的基本概念了解汇编语言的基本概念 理解汇编语言使用的进位计数制理解汇编语言使用的进

5、位计数制 熟练掌握不同进制之间转换、计算机的编码熟练掌握不同进制之间转换、计算机的编码 熟悉汇编语言中的基本数据类型熟悉汇编语言中的基本数据类型数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级6第1章 教学要求3 3教学重点:教学重点: 不同进制之间转换不同进制之间转换 计算机的编码计算机的编码4 4掌握难点:掌握难点: 不同进制之间转换不同进制之间转换 计算机的编码计算机的编码5 5复习内容摘要复习内容摘要 例:例:1.(10010)2 (36)8 (25)10 (18)162. 125.5d=( ? )b=( ? )q=( ? )h=( ?

6、 )bcd数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级7第2章 教学要求1 1教学目的教学目的: :掌握掌握intel80x86intel80x86微处理器概况以及基于微微处理器概况以及基于微 处理器的计算机系统构成,为汇编语言编程奠定基础。处理器的计算机系统构成,为汇编语言编程奠定基础。2 2教学要求:教学要求: 了解了解intel80x86intel80x86微处理器概况微处理器概况 理解基于微处理器的计算机系统构成理解基于微处理器的计算机系统构成 熟练掌握汇编语言编程所需的熟练掌握汇编语言编程所需的cpucpu功能结构、微机功能结构、

7、微机存储器(存储器(memmem)组织和微机接口组织等基础知识)组织和微机接口组织等基础知识数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级8第2章 教学要求3 3教学重点:教学重点: 微处理器的功能结构微处理器的功能结构 微存储器组织微存储器组织4 4掌握难点:掌握难点: 微处理器的寄存器组微处理器的寄存器组 存储器寻址存储器寻址5 5复习内容摘要复习内容摘要例:例:1.cpu发出的访问存储器的地址发出的访问存储器的地址是(是( a)。)。a.物理地址物理地址 b.偏移地址偏移地址 c.逻逻辑地址辑地址 d.段地址段地址 2.dec byte

8、 ptrbx中的操中的操作数的数据类型是(作数的数据类型是( c)。)。 a.字字 b.双字双字 c.字节字节 d.四字四字3. buffer db 01h,0ah, buffer称为(称为( a)。)。 a.符号符号 b.变量变量 c.助记符助记符 d.标号标号数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级9第3章 教学要求1 1教学目的教学目的: :掌握微机寻址方式和掌握微机寻址方式和80868086微处理器指令系微处理器指令系统统2 2教学要求:教学要求: 熟悉指令构成熟悉指令构成,了解指令执行时间。,了解指令执行时间。 掌握掌握101

9、0种寻址方式。种寻址方式。 熟悉指令系统的六大类指令熟悉指令系统的六大类指令,要求结合上机实践,要求结合上机实践熟练掌握常用指令。熟练掌握常用指令。ibm-pc计算机全部指令的集合称为它的 指令系统 。这些指令按功能可以分为六大类:数据传送指令、算术运算指令、 逻辑运算和移位指令 、串处理指令、控制转移指令 和 处理器控制指令 。 数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级10第3章 教学要求 结合指令举例逐步熟悉和掌握汇编语言程序的格结合指令举例逐步熟悉和掌握汇编语言程序的格式,以及典型程序段。式,以及典型程序段。 了解了解80 x86

10、80 x86和和pentium cpupentium cpu扩充和增加的指令。扩充和增加的指令。3 3教学重点:教学重点: 寻址方式寻址方式 80868086微处理器指令系统微处理器指令系统4 4掌握难点:掌握难点: 寄存器的应用寄存器的应用 存储器的结构存储器的结构5 5复习内容摘要复习内容摘要数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级11第3章 教学要求例:例: 1.若若ax=3500h,cx=56b8h,当,当and ax,cx指令执行后,指令执行后,ax=( a)。)。 a. 1400h b. 77f8h c. 0000h d.

11、0ffffh 2.指令指令jmp far ptr done属于(属于( c )。)。a.段内转移直接寻址段内转移直接寻址 b.段内转移间接寻址段内转移间接寻址c.段间转移直接寻址段间转移直接寻址 d.段间转移间接寻址段间转移间接寻址 3.将将ax 清零,清零, 下列指令错误的是(下列指令错误的是( c )。)。 a.sub ax,ax b.xor ax,ax c.or ax,00h d.and ax,00h 4.一定要掌握的指令:一定要掌握的指令:inc、dec、mov、add、adc、sub、sbb、mul、div、shr、sar、ror、rcr、loop、loopz、rep、scasb、c

12、mpsb、movsb、push、pop、pushf、jle、jg、test、cmp、and、lea数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级12第4章 教学要求1 1教学目的:掌握微型汇编语言格式和程序设计方法教学目的:掌握微型汇编语言格式和程序设计方法2 2教学要求:教学要求: 熟悉汇编语言程序的结构、语句类型和格式。熟悉汇编语言程序的结构、语句类型和格式。 熟悉数据项及表达式,要求能明确区分标号和变熟悉数据项及表达式,要求能明确区分标号和变量。量。 熟悉各类伪指令,要求掌握常用伪指令格式和应熟悉各类伪指令,要求掌握常用伪指令格式和应用

13、。用。 熟悉汇编语言上机过程和熟悉汇编语言上机过程和debugdebug调试调试数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级13第4章 教学要求3 3教学重点:教学重点: 指令语句格式和伪指令语句格式指令语句格式和伪指令语句格式 汇编语言程序格式。汇编语言程序格式。4 4掌握难点:掌握难点: 伪指令伪指令 伪指令存储器分配技术伪指令存储器分配技术5 5复习内容摘要复习内容摘要例:例:1. buff db 1234567,则,则buff字节单元的内容是:字节单元的内容是:31h? ? 2.将数据将数据5618h存放在存储单元中的存放在存储单元

14、中的伪指令是(伪指令是( b)。)。 a. data1 dw 1856h b. data1 db 18h,56h c. data1 equ 5618h d. data1 db 18h,00h,56h,00h3. mov sp,3210h push ax执行上述指令序列后,执行上述指令序列后,sp寄存器的寄存器的值是(值是( b )。)。a.3211h b.320eh c.320fh d.3212h数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级14第5章 教学要求1 1教学目的:掌握微型汇编语言程序分析和设计方法教学目的:掌握微型汇编语言程序分

15、析和设计方法2 2教学要求:教学要求: 熟悉汇编语言程序设计的基本步骤。熟悉汇编语言程序设计的基本步骤。 掌握程序流程图的使用,会利用其分析问题。掌握程序流程图的使用,会利用其分析问题。 掌握汇编语言的顺序、分支、循环程序的设计。掌握汇编语言的顺序、分支、循环程序的设计。 了解实模式下了解实模式下8038680386及其后继机型的汇编语言的程及其后继机型的汇编语言的程序设计序设计数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级15第5章 教学要求3 3教学重点:教学重点: 利用流程图分析问题。利用流程图分析问题。 顺序、分支、循环程序的设计。顺

16、序、分支、循环程序的设计。4 4掌握难点:掌握难点: 分支程序设计分支程序设计 循环程序设计循环程序设计5 5复习内容摘要复习内容摘要数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级16第5章 教学要求例:例:1.把把 bx 中的二进制数以十六进制的形式显示在屏幕中的二进制数以十六进制的形式显示在屏幕2.编写一段显示字符串编写一段显示字符串string的程序的程序 data segment string db happy new year!, 0dh , 0ah , $ count dw 17 data ends 3. 有数组有数组 x(x1,

17、x2,x10) 和和 y(y1,y2,y10),编程计算,编程计算 z(z1,z2,z10)4.将首地址为将首地址为a的字数组从小到大排序的字数组从小到大排序:32,85,16,15, 8 5.求首地址为求首地址为array的的m个字之和,结果存入个字之和,结果存入total6.折半查找算法折半查找算法第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计 mov cx, 4 mov cx, 4 ;初始化;初始化rotate: rotate: mov cl, 4 mov cl, 4 rol bx, cl rol bx, cl mov

18、 al, bl mov al, bl and al, 0fh and al, 0fh add al, 30h add al, 30h ; 09 ascii 30h39h; 09 ascii 30h39h cmp al, 3ah cmp al, 3ah jl printit jl printit add al, 7h add al, 7h ; af ascii 41h46h; af ascii 41h46hprintit: printit: mov dl, almov dl, al mov ah, 2 mov ah, 2 int 21h int 21h loop rotate loop rota

19、te 方法方法1 (loop)第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 x dw x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 y dw y1,y2,y3,y4,y5,y6,y7,y8,y9,y10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 z dw z1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_rule

20、dw 00dch logic_rule dw 00dch ;0000,0000,1101,1100;0000,0000,1101,1100 mov bx, 0mov bx, 0 mov cx, 10 mov cx, 10 mov dx, logic_rule mov dx, logic_rulenext: mov ax, xbxnext: mov ax, xbx shr dx, 1 shr dx, 1 jc subtract jc subtract add ax, ybx add ax, ybx jmp short result jmp short result ; ; 向前引用向前引用sub

21、tract: subtract: sub ax, ybx sub ax, ybxresult: mov zbx, axresult: mov zbx, ax add bx, 2 add bx, 2 loop next loop next 第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计 mov cx, 5 mov cx, 5 ; ;元素个数元素个数 dec cx dec cx ; ;比较遍数比较遍数: : mov bx, 0mov bx, 0: : mov ax, abx mov ax, abx ; ;相邻两数相邻两数 cmp

22、 ax, abx+2 cmp ax, abx+2 ; ; 比较比较 jle continuejle continue xchg ax, abx+2 xchg ax, abx+2 ; ;交换位置交换位置 mov abx, axmov abx, axcontinue:continue: add bx, 2 add bx, 2 loop loop loop loop 第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计(2) 条件控制条件控制data segmentdata segment array dw 12,11,22,33,44

23、,55,66 array dw 12,11,22,33,44,55,66 dw 77,88,99,111,222,333 dw 77,88,99,111,222,333 number dw 55 number dw 55 low_idx dw ? low_idx dw ? high_idx dw ? high_idx dw ?data endsdata ends例:例:折半查找算法折半查找算法. .在数据段中,有一个按从小到大顺序排列的无符号数字在数据段中,有一个按从小到大顺序排列的无符号数字数组数组arrayarray,数组中的第一个单元存放着数组的长度。在,数组中的第一个单元存放着数组的长

24、度。在axax中有一个无符号中有一个无符号数,要求在数组中查找数,要求在数组中查找numbernumber,如果找到,则使,如果找到,则使cf=0cf=0,并在,并在sisi中给出该元素中给出该元素在数组中的偏移地址;如未找到,则使在数组中的偏移地址;如未找到,则使cf=1cf=1。第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计 lea di, arraylea di, array mov ax, number mov ax, number ; ;要查找数要查找数 cmp ax, di+2 cmp ax, di+2 ; (a

25、x); (ax)与第一个元素比较与第一个元素比较 ja chk_lastja chk_last lea si, di+2 lea si, di+2 je exit je exit ; (ax); (ax)第一个元素第一个元素, ,找到退出找到退出 stcstc jmp exit jmp exit ; (ax); (ax); (ax)最后一个元素最后一个元素, ,未找到退出未找到退出算法算法第5章 龙岩学院龙岩学院 第第5章章 循环与分支程序设计循环与分支程序设计ibmpc汇编语言程序设计汇编语言程序设计compare:compare: cmp ax, bx+si cmp ax, bx+si j

26、e exit je exit ja higher ja higher dec cxdec cx mov high_idx, cx mov high_idx, cx jmp mid jmp midhigher:higher: inc cxinc cx mov low_idx, cx mov low_idx, cx jmp mid jmp midno_match:no_match: stc stcexit:exit: search:search: mov low_idx, 1 mov low_idx, 1 mov bx, di mov bx, di ; ;个数个数 mov high_idx, bx

27、mov high_idx, bx mov bx, di mov bx, dimid:mid: mov cx, low_idx mov cx, low_idx mov dx, high_idx mov dx, high_idx cmp cx, dx cmp cx, dx ja no_match ja no_match add cx, dxadd cx, dx shr cx, 1 shr cx, 1 mov si, cx mov si, cx shl si, 1 shl si, 1数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级23第6章 教学要求

28、1 1教学目的:掌握子程序的定义以及调用教学目的:掌握子程序的定义以及调用2 2教学要求:教学要求: 子程序定义伪操作子程序定义伪操作 子程序的调用和返回子程序的调用和返回 保存和恢复寄存器以及参数的传递保存和恢复寄存器以及参数的传递 子程序的嵌套子程序的嵌套 递归子程序递归子程序 dosdos系统功能调用系统功能调用数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级24第6章 教学要求3 3教学重点:教学重点: 子程序的调用和返回子程序的调用和返回 保存和恢复寄存器以及参数的传递保存和恢复寄存器以及参数的传递 子程序的嵌套调用子程序的嵌套调用4

29、 4掌握难点:掌握难点: 保存和恢复寄存器以及参数的传递保存和恢复寄存器以及参数的传递 子程序的嵌套子程序的嵌套 递归子程序递归子程序 dosdos系统功能调用系统功能调用5 5复习内容摘要复习内容摘要数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级25第6章 教学要求例:例:1. 下列程序段实现何种功能:下列程序段实现何种功能: string db abcdefghij mov ah,01 ;从键盘输入字符从键盘输入字符1-9 int 21h and al,0fh dec al xor ah,ah mov bx,offset string a

30、dd bx,ax mov dl,bx mov ah,02h ;显示输出显示输出 int 21h2.十进制到十六进制转换的程序。程序要求从键盘取得一个十进制数,然后把该数十进制到十六进制转换的程序。程序要求从键盘取得一个十进制数,然后把该数以十六进制的形式在屏幕上显示出来。以十六进制的形式在屏幕上显示出来。 龙岩学院大学龙岩学院大学 计算机科学系计算机科学系 郑金彬郑金彬 ibmpc汇编语言程序设计汇编语言程序设计第第6 6章章6.3 子程序举例子程序举例例例1:hexidex是一个十六进制数转换成十进制数的程序。要求把从键盘输是一个十六进制数转换成十进制数的程序。要求把从键盘输入的入的0 ff

31、ffh的十六进制正数转换为十进制数并在屏幕上显示出来。的十六进制正数转换为十进制数并在屏幕上显示出来。display equ 2hkey equ 1hdoscall equ 21hhexidec segmentmain proc far assume cs:hexidecstart: push ds sub ax,ax push ax call hexidec call crlf call binidec call crlf jmp main ret main endp crlf proc near mov dl ,0ah mov ah,display int boscall mov dl,0

32、dh mov ah,display int doscall ret crlf endphexidec ends end start 龙岩学院大学龙岩学院大学 计算机科学系计算机科学系 郑金彬郑金彬 ibmpc汇编语言程序设计汇编语言程序设计第第6 6章章 retdec_div endpbinidec endp数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级28第7章 教学要求1 1教学目的:掌握高级汇编语言技术教学目的:掌握高级汇编语言技术2 2教学要求:教学要求: 理解宏汇编的概念和作用。理解宏汇编的概念和作用。 掌握宏汇编的编程技术。掌握宏

33、汇编的编程技术。 了解重复汇编概念和使用方法。了解重复汇编概念和使用方法。 掌握条件汇编概念和使用方法。掌握条件汇编概念和使用方法。数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级29第7章教学要求3 3教学重点:教学重点: 宏汇编的编程技术。宏汇编的编程技术。4 4掌握难点:掌握难点: 宏汇编的概念宏汇编的概念5 5复习内容摘要复习内容摘要数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级30第7章 教学要求例:例:1. 下列程序段实现:根据键盘输入下列程序段实现:根据键盘输入04的不同值,实现

34、程序分支。的不同值,实现程序分支。branch_tab dw r0,r1,r2,r3,r4mov bx,offset branch_tabmov ah,1int 21h _(1)_sub al,30h_mov ah,0add ax,axadd bx,ax_(2)_jmpbx_;转到相应分支;转到相应分支2.将两个将两个16位数相加,结果存入位数相加,结果存入16位位 result 单元中单元中 3.伪操作伪操作&、伪操作、伪操作%的使用方法的使用方法4.定重复伪指令定重复伪指令rept、不定重复伪指令、不定重复伪指令irp 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆

35、李敬兆 汇编语言汇编语言 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言1 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级34第8章 教学要求1 1教学目的:掌握教学目的:掌握i/oi/o程序设计,特别是实模式下的中程序设计,特别是实模式下的中断程序设计的方法断程序设计的方法2 2教学要求:教学要求: 掌握掌握i/oi/o端口与端口地址及端口与端口地址及i/oi/o指令。指令。 熟悉无条件传送、查询传送

36、、中断传送和熟悉无条件传送、查询传送、中断传送和dmadma传送传送的基本工作原理。的基本工作原理。 熟悉内部中断和外部中断,理解中断向量表的安排熟悉内部中断和外部中断,理解中断向量表的安排。 掌握中断请求、中断判优、中断响应、中断处理和掌握中断请求、中断判优、中断响应、中断处理和中断返回五个过程的原理。中断返回五个过程的原理。数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级35第8章 教学要求 了解内部中断和外部中断,理解中断向量表的安排。了解内部中断和外部中断,理解中断向量表的安排。 掌握中断处理程序的设计掌握中断处理程序的设计 掌握设置和

37、获取中断向量的方法掌握设置和获取中断向量的方法 了解了解biosbios中断调用概念和调用方法中断调用概念和调用方法 了解了解dosdos中断调用概念和调用方法中断调用概念和调用方法数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级36第8章 教学要求3 3教学重点:教学重点: 中断传送中断传送 中断处理程序的设计中断处理程序的设计4 4掌握难点:掌握难点: 中断处理程序的设计中断处理程序的设计5 5复习内容摘要复习内容摘要数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级37第8章 教学要求例:例

38、:1 1使用使用dosdos系统功能调用时,使用的软中断指令是()。系统功能调用时,使用的软中断指令是()。(a a)int 21int 21 (b b)int 10hint 10h(c c)int 16hint 16h (d d)int 21hint 21h2.2.在在80868086系统中,内存最低端的系统中,内存最低端的1k1k字节地址范围内(从字节地址范围内(从0000000000003ffh003ffh),),放置放置256256个中断的中断向量(入口地址),即称为中断向量表。每个中个中断的中断向量(入口地址),即称为中断向量表。每个中断矢量在表中占据断矢量在表中占据4 4个字节,地

39、址较高的两个字节放入口地址的段地址,个字节,地址较高的两个字节放入口地址的段地址,地址较低的两个字节放偏移地址。地址较低的两个字节放偏移地址。 中断向量表中的存储地址中断类型码中断向量表中的存储地址中断类型码n n4 4数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级38数学与计算机科学学院数学与计算机科学学院 汇编语言程序设计汇编语言程序设计 2010 2010级级39程序(段)设计1. 1. 编写一段显示字符串编写一段显示字符串stringstring的程序的程序2. x2. x、y y、z z均为双精度数,分别存放在地址为均为双精度数,分

40、别存放在地址为x, x+2x, x+2;y, y+2y, y+2;z, z+2z, z+2的存的存储单元中,用指令序列实现储单元中,用指令序列实现:w=x+y+24-z :w=x+y+24-z ,并用,并用w, w+2w, w+2单元存放单元存放w w。 3.3.定义宏指令定义宏指令finsunfinsun:比较两个数:比较两个数x x和和y y(x x、y y为数,而不是地址),若为数,而不是地址),若xyxy则则执行执行sumx+2sumx+2* *y y;否则执行;否则执行sumxsumx* *2+y 2+y 4.4.编程计算编程计算sum=sum=,已知,已知依次存放在以依次存放在以b

41、ufbuf为首址的数据区,每个数据占两个为首址的数据区,每个数据占两个字节,和数字节,和数sumsum也为两个字节。也为两个字节。 5. 5. x,y,z,vx,y,z,v均为均为1616位带符号数,计算位带符号数,计算( (v-(xv-(x* *y+z-540)/xy+z-540)/x6.6.比较两个字符串,找出它们不相匹配的位置比较两个字符串,找出它们不相匹配的位置7. x507. x50,转到,转到too_hightoo_high;计算;计算x-yx-y,溢出转到,溢出转到overflowoverflow,否则,否则|x-y|result|x-y|result8.8.求首地址为求首地址为

42、arrayarray的的m m个字之和,结果存入个字之和,结果存入totaltotal。 第 3 章 例例:编写一段显示字符串编写一段显示字符串string的程序的程序 data segment string db happy new year!, 0dh , 0ah , $ count dw 17 data ends (1)直接寻址)直接寻址 mov dl, string ; mov dl, h mov ah, 2 int 21h ; 显示字符显示字符h mov dl, string+1 ; mov dl, a mov ah, 2 int 21h ; 显示字符显示字符a .第 3 章 (4)

43、基址变址寻址)基址变址寻址 mov cx, count ; mov cx, 17 mov bx, offset string ; string的偏址的偏址 bx mov si, 0 next: mov dl, bxsi ; mov dl, bx+si mov ah, 2 int 21h ; 显示一个字符显示一个字符 inc si loop next ; 循环指令循环指令 (5)dos显示字符串功能显示字符串功能 mov dx, offset string ; string的偏址的偏址 dx ; lea dx, string mov ah, 9 int 21h ; 显示一串字符显示一串字符第 3 章例:例:x、y、z均为双精度数,分别存放在地址为均为双精度数,分别存放在地址为x, x+2; y, y+2;z, z+2的存储单元中,用指令序列实现的存储单元中,用指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论