文档详情

第11-12讲-第4章--汇编语言程序设计.ppt

发布:2025-03-10约4.33千字共66页下载文档
文本预览下载声明

stack segmentstack ;定义堆栈段

dw512dup(?)

;堆栈段有512字〔1024字节〕空间

stack ends ;堆栈段结束

data segment ;定义数据段

string db’Hello,Everybody!’,0dh,0ah,’$’

data ends

code segment’code’ ;定义代码段

assumecs:code,ds:data,ss:stack

start: movax,data ;建立DS段地址

movds,ax

movdx,offsetstring

movah,9

int21h

movax,4c00h

int21h ;利用功能调用返回DOS

code ends ;代码段结束

endstart ;汇编结束,同时指明程序起始点;例 dataseg

ARR1DB00H,11H,22H,33H

ARR2DW3456H,1024,25×25,1000/3,10A0H

dataends;编辑;微机原理与接口技术

第4章深入浅出学编程;通过本章的学习,应当掌握以下内容:

了解汇编语言的根本知识和特点。

熟悉汇编语言的程序结构、段定义以及语句的格式。

掌握汇编语言常用伪指令的使用方法。

熟练掌握汇编语言程序设计的根本方法:顺序结构、分支结构、循环结构和子程序结构。

*掌握程序设计中的宏指令和常用的系统功能的调用方法。;教学目的;教学重点;;;;;;;算法的概念;用流程图表示算法;传统流程图的流程可以是:;〔3〕分支(选择〕结构〔4〕子程序结构;图中没有一条从入口到出口的路径通过A框。;4.3顺序程序设计;例4.1;64位数据左移8位例4.2-1/2;例4.2-2/2;;例题代码转换-1/2;例题代码转换-2/2;开始; MOV SS,AX

MOV SP,LENGTHSTK

MOV AL,DATA MOV AH,AL

 AND AL,0F0H MOV CL,04

SHR AL,CL

 MOV HEX,AL

 AND AH,0FH MOV HEX+1,AH

 MOV AX,4C00H

 INT 21H

CSEGENDS

 END BEG

;4.4分支程序设计;*/18;单分支程序设计;例题求绝对值;例题无符号数除以2(自学〕;分析命题;分析命题;双分支程序设计;例题显示BX最高位-解法1;例题显示BX最高位-解法2;例题显示BX最高位-解法3;多分支程序设计;多分支结构;【例】编程实现以下函数的功能,其中X、Y为无符号字节数。〔多分支〕;流程图;地址表形成多分支〔太技巧,不用看〕; .data

msg dbInputnumber(1~8):,0dh,0ah,$

msg1 dbChapter1:...,0dh,0ah,$

msg2 dbChapter2:...,0dh,0ah,$‘

...

msg8 dbChapter8:...,0dh,0ah,$

table dwdisp1,disp2,disp3,disp4

dwdisp5,disp6,disp7,disp8

;取得各个标号的偏移地址;start1: movdx,offsetmsg ;提示输入数字

movah,9

int21h

movah,1 ;等待按键,ASCIICODE

int21h

cmpal,1 ;数字1?

jbstart1

cmpal,8 ;数字8?

jastart1

andax,000fh ;将ASCII码转换成数字; decax

shlax,1 ;等效于addax,ax

movbx,ax

jmptable[bx]

;〔段内〕间接转移:IP←[table+bx]

start2: movah,9

int21h

.exit0

disp1: movdx,offsetmsg1 ;处理程序1

jmpstart2

disp2: movdx,offset

显示全部
相似文档