第四章汇编语言源程序设计

第四章汇编语言源程序设计
第四章汇编语言源程序设计

第四章汇编语言源程序设计

1.画出数据段汇编后相应存储单元中的内容并标出存储单元的逻辑地址。

DA TA SEGMENT

ORG 0100H

ABC0 EQU 78H

ABC DB 09H,-2,45H, 2 DUP(01H,?),‘AB’

ABC1 DW -2, 34H+ABC0,$

ABC2 DD 12H

ABC3 DW ABC

DA TA ENDS

解:

DS:0100H ABC→

DS:0101H

DS:0102H

DS:0103H

DS:0104H

DS:0105H

DS:0106H

DS:0107H

DS:0108H

DS:0109H ABC1→

DS:010AH

DS:010BH

DS:010CH

DS:010DH

DS:010EH

DS:010FH ABC2→

DS:0110H

DS:0111H

DS:0112H

DS:0113H ABC3→

DS:0114H

2.设程序中的数据定义如下:

PARTNO DW ?

PNAME DB 16 DUP(?)

COUNT DD ?

PLENTH EQU $-PARTNO

问PLENTH的值为多少?它的含义是什么?

解:PLENTH的值为22(16H)。表示当前位置与PARTNO之间有22个字节空间。3.假设程序中的数据定义如下:

LNAME DB 30 DUP(?)

ADDRESS DB 30 DUP(?)

CITY DB 15 DUP(?)

CODE_LIST DB 1,7,8,3,2

(1)用一条MOV指令将LNAME的偏移地址放入AX;

(2)用一条指令将CODE_LIST的头两个字节的内容放入SI:

(3)写一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。解:(1)MOV AX,OFFSET LNAME

(2)MOV SI,WORD CODE_LIST

(3)CODE_LENGTH EQU $-CODE_LIST

4.执行下列程序段后,AX、BX的内容各是什么?

MOV AX,0001H

MOV BX,8000H

NEG AX

MOV CX,4

AA:SHL AX,1

RCL BX,1

LOOP AA

HLT

解:AX=0FFF0H,BX=000FH

5.阅读以下程序,回答问题

DA TA SEGMENT

ABC DB 90H,12H,43H,56H,04H,01H

COUNT EQU $-ABC

RESULT DW ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:PUSH DS

MOV AX,DA TA

MOV DS,AX

XOR AX,AX

MOV CX,COUNT

LEA SI,ABC

LEA DI,RESULT

AA:MOV BL,[SI]

INC SI

CMP BL,80H

JC NEXT1

NEG BL

NEXT1:ADD AL,BL

ADC AH,00H

LOOP AA

MOV [DI],AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

(1)程序完成什么功能?

(2)程序中NEG BL指令的作用是什么?

(3)程序执行结束后RESULT字单元的内容是什么?

(4)能否用MOV SI,OFFSET ABC代替程序中LEA SI,ABC指令?(5)汇编结束后符号COUNT的值是什么?

解:(1)程序完成求一组有符号字节数的绝对值之和。

(2)程序中NEG BL指令的作用是求负数的绝对值。

(3)程序执行结束后RESULT字单元的内容是0120H。

(4)能。

(5)汇编结束后符号COUNT的值是06H。

6.阅读以下程序,回答问题

DSEG SEGMENT

ARRAY DB 34H,56H,23H,70H,96H

COUNT EQU $-ARRAY

DSEG ENDS

SSEG SEGMENT PARA STACK ‘STACK’

DB 256 DUP(0)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,SS:SSEG

START:MOV AX,DSEG

MOV DS,AX

MOV SI,OFFSET ARRAY

MOV CX,COUNT

CLD

NEXT: LODSB

MOV BL,AL

AND AL,0F0H

PUSH CX

MOV CL,4

SHR AL,CL

OR AL,30H

CALL DISP

MOV AL,BL

AND AL,0FH

OR AL,30H

CALL DISP

DEC CX

JCXZ DONE

MOV AL,2CH ;逗号的ASCII码为2CH

CALL DISP JMP NEXT

DONE:MOV AH,4CH ;终止当前进程,返回调用进程

INT 21H

DISP PROC NEAR

MOV AH,14 ;写字符到当前光标位置,光标前进一格 INT 10H RET

DISP ENDP

CSEG ENDS END START

(1)程序执行结束后,屏幕上显示的内容是什么?

(2)程序中带下划线的指令可以用什么指令替代(仅一条)?

(3)程序中空格处应填入什么指令,才能保证程序按要求正常执行? 解:(1)程序执行结束后,屏幕上显示的内容是34,56,23,70,96。 (2)程序中带下划线的指令可以用LEA SI ,ARRAY 指令替代。

(3)程序中空格处应填入POP CX 指令,才能保证程序按要求正常执行。

7.AX 寄存器中存有4位压缩BCD 码,试编写程序将这4位数字分开,并分别存入BH 、BL 、CH 和CL 寄存器中。

解: 参考程序段如下:

……

MOV DX,AX MOV CL,04H ROL AX,CL AND DX,0F0FH MOV BL,DH MOV CL,DL AND AX,0F0FH MOV BH,AL MOV CH,AH ……

8.已知X 、Y 是字节型的无符号整数,编写程序计算?

?

?<≤-<≤=)3020(,15)

200(,8/X X X X Y 。

解:参考程序如下:

DATA SEGMENT

X DB ? ;运行程序时取X 分别位于两个分支 Y DB ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,DS:DATA

START:MOV AX ,DATA

MOV DS ,AX MOV AL ,X

CMP AL,20

JNC NEXT

MOV CL,03H

SHR AL,CL

JMP NEXT1

NEXT:SUB AL,15

NEXT1:MOV Y,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

9.编写程序,统计寄存器BX中二进制位“1”的个数,结果存在AL中。

解:参考程序如下:

CODE SEGMENT

ASSUME CS:CODE

START: MOV AL,00H

MOV DX,BX

MOV CX,16

AA: CMP DX,0

JZ NEXT

SHL DX,1

JNC NEXT1

INC AL

NEXT1: LOOP AA

NEXT: MOV AH,4CH

INT 21H

CODE ENDS

END START

10.编写程序段将计算机日期设置为2009年10月1日。

解:参考程序段如下:

MOV CX,2009H ;设置年

MOV DH,10H ;设置月

MOV DL,01H ;设置日

MOV AH,2BH

INT 21H

HLT

11.编写程序实现接收一个字符的输入,并在屏幕上用二进制形式(0/1)显示出它的ASCII码值。

解:参考程序如下:

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AH,01H ;键盘输入

INT 21H

MOV BL,AL

MOV CX,0007H

SHL BL,1

AA:SHL BL,1

JC NEXT1

MOV DL,’0’

JMP NEXT

NEXT1:MOV DL,’1’

NEXT: MOV AH,02H ;显示输出7位ASCII码值

INT 21H

LOOP AA

MOV AH,4CH

INT 21H

CODE ENDS

END START

12.设数据块存放在BUFFER开始的50个字节单元中,试编写程序统计数据块中正数(不包括0)的个数,并将统计的结果存放到NUMBER单元中。

解:参考程序如下:

DA TA SEGMENT

BUFFER DB 23H,00H,56H,89H,09H,30H

DB 98H,11H,07H,…

COUNT EQU $-BUFFER

NUMBER DB 00H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,COUNT

LEA SI,BUFFER

AA:MOV AL,[SI]

CMP AL,00H

JZ NEXT

JS NEXT

INC NUMBER

NEXT:INC SI

LOOP AA

MOV AH,4CH

INT 21H

CODE ENDS

END START

13.内存的一个区域中有100个字符是用小写字母表示的,试编写一个程序,把它们转换成大写字母,并送屏幕显示。

解:参考程序如下:

DATA SEGMENT

ABC DB 61H,65H,62H,63H,…;(100个小写字母)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,0064H

LEA SI,ABC

AA:MOV DL,[SI]

SUB DL,20H

MOV [SI],DL

MOV AH,02H

INT 21H

INC SI

LOOP AA

MOV AH,4CH

INT 21H

CODE ENDS

END START

14.“9876”是将输入数据字符“3268”通过密码表“3589027164”加密而得,编写解密程序,求任意输入四位密码的原码。

解:参考程序如下:

DATA SEGMENT

ABC DB 33H,35H,38H,39H,30H

DB 32H,37H,31H,36H,34H

ABC1 DB 4DUP(00H)

ABC2 DB 00H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DA TA

MOV DS,AX

LEA SI,ABC1

LEA DI,ABC2

MOV CX,0004H

AA: MOV AH,01H

INT 21H

MOV [SI],AL

INC SI

LOOP AA

LEA SI,ABC1

MOV DX,0000H

MOV CX,0004H

AA0: LEA BX,ABC

AA1: MOV AL,[SI]

CMP AL,[BX]

JZ NEXT

INC BX

INC DL

JMP AA1

NEXT:PUSH CX

CMP CX,01H

JZ NEXT1

MOV CL,04H

SHL DX,CL

NEXT1:POP CX

LOOP AA0

MOV [DI],AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

15.在STRING单元开始存放着一字符串,字符串以“$”结束,试编制一程序测试该字符串中是否有数字0~9,如有则将CL中的第5位置1,否则将该位清0。

解:参考程序如下:

DATA SEGMENT

ABC DB ‘ABCDS9KL$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA SI,ABC

MOV CL,00H

AA: MOV AL,[SI]

CMP AL,’$’

JZ NEXT1

CMP AL,30H

JC NEXT

CMP AL,3AH

JNC NEXT

OR CL,20H

JMP NEXT1

NEXT: INC SI

JMP AA

NEXT1: MOV AH,4CH

INT 21H

CODE ENDS

16.编写程序完成把DX中的16进制数转换为ASCII码,并将对应的ASCII码依次存入MEM开始的存储单元中。例如,当DX的内容为2A49H时,程序执行结束后,MEM单元开始的4个字节的内容依次为39H,34H,41H,32H。

解:DATA SEGMENT

MEM DB 4 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV CH,04H

MOV BX,OFFSET MEM

MOV CL,04H

AA1:MOV AX,DX

AND AL,0FH

ADD AL,30H

CMP AL,3AH

JC NEXT

ADD AL,07H

NEXT:MOV [BX],AL

INC BX

ROR DX,CL

DEC CH

JNZ AA1

MOV AH,4CH

INT 21H

CODE ENDS

END START

17.现有一个以“$”结尾的字符串,编写程序完成剔除字符串中的空格字符。

解:参考程序如下:

DATA SEGMENT

ABC DB ‘ABC DS9KL$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA SI,ABC

MOV BX,SI

AA: MOV AL,[SI]

CMP AL,’$’

JZ NEXT

CMP AL,20H ;空格的ASCII码值为20H

MOV AL,[SI]

MOV [BX],AL

INC SI

INC BX

JMP AA

NEXT1:INC SI

JMP AA

NEXT: MOV AH,4CH

INT 21H

CODE ENDS

END START

18.编一程序,在STRING开头的数据区中查找WE字符串,数据区以$符作为结束符号。如查到,给出HA VE FOUND提示;如查不到,给出NOT FOUND提示。

解:参考程序如下:

DATA SEGMENT

STRING DB ‘ABCWE5$’

RE DB ‘NOT FOUND$’

RE1 DB ‘HA VE FOUND$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

BEGIN:MOV AX,DA TA

MOV DS,AX

LEA SI,STRING

AA: MOV AL,[SI]

CMP AL,’$’

JZ NEXT

CMP AL,’W’

JNZ NEXT1

INC SI

MOV AL,[SI]

CMP AL,’E’

JNZ AA

LEA DX,RE1

JMP NEXT2

NEXT1:INC SI

JMP AA

NEXT:LEA DX,RE

NEXT2:MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END BEGIN

19.设在A、B和C单元中分别存放着三个数,若三个数都不是0,则求出三数之和并存放在D单元中;若三个数中有一个为0,则把其余两个单元也清0。试编写此程序。

解:参考程序如下:

DATA SEGMENT

A D

B ?

B DB ?

C DB ? ;程序运行前修改A、B和C单元的内容

D DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DATA

MOV DS,AX

MOV AL,A

CMP AL,00H

JZ NEXT

MOV AL,B

CMP AL,00H

JZ NEXT

MOV AL,C

CMP AL,00H

JZ NEXT

MOV AL,A

ADD AL,B

ADD AL,C

MOV D,AL

JMP NEXT1

NEXT: MOV A,00H

MOV B,00H

MOV C,00H

NEXT1: MOV AH,4CH

INT 21H

CODE ENDS

END START

20.在以DA1为首地址的内存中有50个无符号字节数,编写程序统计其中素数的个数,结果以十进制形式在屏幕上显示。要求分别用子程序完成素数个数统计及十进制数显示。

解:分析: 素数,又称质数,是这样的整数:它除了能表示为它自己和1的乘积以外,不能表示为任何其他两个整数的乘积。判断一个整数是否为素数的方法:用这个数除以2到它本身,如果只能被它本身整除则为素数。参考程序如下:

DA TA SEGMENT

TTL DB 'TOTAL NUMBER OF PRIME NUMBER(S): $'

TEN DW 10

PCOUNT DB 0

DA1 DB 1,2,3,4,5,6,7,8,9,10

DB 11,12,13,14,15,16,17,18,19,20

DB 21,22,23,24,25,26,27,28,29,30

DB 31,32,33,34,35,36,37,38,39,40

DB 41,42,43,44,45,46,47,48,49,50

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MAIN: MOV AX,DATA

MOV DS,AX

LEA SI,DA1

MOV DI,50 ;用DI 做主循环计数器

CLD

M_1: LODSB ;从DS:SI取一个无符号整数到AX CALL ISPRIME

JNC M_2

INC PCOUNT

CALL PRINTAX ;是素数则输出AX里的十进制数

MOV DL,9 ;用制表符分隔

CALL PUTC

M_2: DEC DI

JNZ M_1 ;50个数完成?

MOV DX,OFFSET TTL ;输出素数总数

CALL PUTS

MOV AL,PCOUNT ;输出素数总数

XOR AH,AH

CALL PRINTAX

MOV AH,4CH

INT 21H

ISPRIME PROC

CBW

TEST AX,1 ;是否为偶数

JNZ IP_1 ;若是偶数直接返回

IP_0: CLC ;CF=0表示是合数

RET

IP_1: CMP AX,1 ;1或0?

JBE IP_0 ;不是素数

CMP AX,3

JE IP_4 ;3是素数直接返回

MOV CX,3 ;从3开始循环

IP_2: MOV BX,AX ;留个副本在BX里

XOR DX,DX ;为除法清除DX

DIV CX

MOV AX,BX ;恢复AX里的数

OR DX,DX ;余数为0否

JZ IP_0 ;为0为合数

ADD CX,3 ;本来是除数加2,只尝试除数为奇数的情况即可,直接加3是为了比较CX 是否以及到了AX-1

CMP CX,AX

JB IP_3 ;若CX高于或等于AX,说明除数已经尝试到了N-1,AX是素数,直接返回,否则继续到IP_3

IP_4: STC ;CF=1表示是素数

RET

IP_3: DEC CX ;CX-1才是真正下个要尝试的除数

JMP IP_2 ;继续试

ISPRIME ENDP

PUTS PROC

MOV AH,9

INT 21H

RET

PUTS ENDP

PUTC PROC

MOV AH,2

INT 21H

RET

PUTC ENDP

PRINTAX PROC

XOR DX,DX

DIV TEN

MOV CX,AX

OR CX,DX ;若商与余数都为0则结束递归

JZ P_1

PUSH DX ;留存DX中的余数以在递归后输出

CALL PRINTAX ;递归

POP DX ;从最高位开始恢复余数

ADD DL,'0' ;原来的输出语句ADD一下就好了

CALL PUTC

P_1: RET

PRINTAX ENDP

CODE ENDS

END MAIN

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

教案《职业生涯规划》第四章 职业生涯发展与就业、创业

第4章第1课第1课时 正确认识就业 教学目标: 知识目标:1、了解我国目前严峻的就业形势 2、理解首次就业与职业生涯发展的关系、树立“先就业、再择业”的择业观。能力目标:培养学生的阅读能力、讨论问题、分析问题、解决问题的能力。 德育目标:通过学习本课内容教育学生学会感恩,通过自己的积极工作来反哺父母、贡献社会,为社会的发展做出自己应有的贡献。 教学重点:1、明确首次就业的意义 2、引导学生树立正确的择业观 教学难点:引导学生树立正确的择业观 教学方法:案例教学法、角色扮演法、讨论法。 教学手段:多媒体课件 教学过程: 引导学生课前阅读课首案例:学财会的售货员。 课上根据案例情课引导学生讨论下面的问题: 案例问题一:小禹为什么放弃升高职,而选择了直接就业? 教师点拨:生存是发展的基础,个人的职业生涯必须与家庭实际情况相结合。 案例问题二:学财会专业的她,为什么对当上售货员很高兴? 教师点拨:明确要正视就业难的严峻形势,求职期望值要实事求是 第四章职业生涯发展与就业、创业(板书) 第一课正确认识就业(板书) 一、首次就业与职业生涯发展(板书) 学生讨论分析课首案例问题三: 小禹不熟悉售货员的工作,在工作中遇到很多困难,她是怎么做的? 教师点拨:要珍惜首次就业机会,摆正心态,积极投入到新的工作岗位中去,虚心学习,努力拓展自己的知识面。 教师进一步讲明首次就业的意义: 首次就业是中职生人生中的重要转折,是生活方式质的变化。没有首次就业,职业生涯就不可能开始,职业生涯就永远停留在职业准备阶段。 首次就业是职业生涯的重要经历,是职业生涯发展的起点没有首次就业,就不可能有从业阅历,不可能对职业有真正的感悟,不可能真正实现人生角色的转换。 学生讨论分析课首案例问题四:小禹的成长经历给你什么感悟? 教师点拨:我们为小禹的孝心而感动、为小禹积极适应工作而努力学习的理智举动而感慨。惟有时常怀着一颗感恩的心,才能有不竭地动力为父母拼搏、去为社会奋斗,从而成就一个成功的自我。同时小禹的首次就业选择的目标定位准确,为她日后的成功择业奠定了良好的基础。 学生讨论:首次就业应注意的问题有哪些? 首次就业的目标要务实;首次就业的实际岗位可能与你的规划有差距,但你不要轻言放弃,要从基层岗位做起,脚踏实地才能向上攀登;首次就业忌好高骛远、眼高手低,要胸怀大志,更要顺应时势,才能使自己的职业生涯获得成功 活动设计:学生小品扮演——父母的爱 小品内容:父母关爱子女的点滴、父母努力工作的日子(进修、加班等) 学生交流:此时此刻最想与自己的父母说的一句话。 活动目的:增进学生对父母的理解与尊重;唤醒心疼父母的亲情;激发报答父母服务社会的责任心。 二、就业形势与择业观(板书) 1.必须正视就业难(板书) 活动设计:就业调查结果交流

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

大学生职业生涯规划 第四章 考试题及答案

大学生职业生涯规划 第四章探索职业 一、选择题 单选题: 1.下面(D)不属于当前职业世界现状。 A.就业形势严峻,大学毕业生人数不断攀升。 B.就业市场的结构性矛盾依旧。 C.职业价值观不断变化。 D.大学生就业率不稳定。 2.进入大学已经两年,晓芳越发觉得自己非常热爱心理学这门学科,因此她查阅了许多关于心理学就业的资料,还请教了几位师兄师姐。在上述案例中晓芳处于职业生涯探索阶段的哪一个时期(A)。 A.试探期 B.过渡期 C.试验期 D.实践期 3.生涯彩虹图理论认为(A) A.生涯发展阶段与角色之间交互作用 B.各个角色时期独立存在 C.不同人在相同阶段的角色相同 D.生涯彩虹图的纵向层面代表的是横跨一生的生活广度,以生涯的成长阶段、探索阶段、建立阶段、维持阶段和衰退阶段为发展前提,构建出一个随着成长过程而延伸的“生活空间” 4.舒伯认为人的行为方式受到3种时间因素的影响,以下哪个描述不属于时间因素(C)。 A.对过去成长痕迹的“回顾”。 B.对目前发展状况的“审视”。 C.对他人生活的“学习” D.是对未来可能发展方向的“展望”。 5.在工作世界地图中,表示运用理论、思考、创意等新形式表达或运作的工作维度为(D)。 A.人 B.事物 C.数据 D.概念 6.以下对于中国职业分类大典的描述中,错误的是(B)。 A.1999年,我国颁布了第一部《中华人民共和国职业分类大典》(简称《大典》)。 B.小类是我国职业分类结构中最基本的类别,即职业。 C.我国的职业分类结构包括4个层次,即大类、中类、小类和细类,依次体现由大到小的职业类别。

D.职业分类大典是职业分类的成果形式和载体,是目前国内最权威的了解职业世界的工具。 7.以下哪种不属于职业实践的形式(A)。 A.生涯课程 B.社会实践 C.兼职工作 D.基层工作 8.SWOT分析法是科学地分析个体在做选择时面临的竞争优势、竞争劣势、机会和威胁,从而帮助个体做出合适的决定。毕业生晓东分析金融行业工作节奏快、竞争压力大,人才的需求主要集中在高端市场,本科生的市场行情弱于研究生属于SWOT分析法的哪一个维度(D)。 A.优势 B.劣势 C.机会 D.威胁 9.以下不属于无边界职业生涯特点的为(C) A.多个组织边界 B.交易型心理契约 C.线性的等级结构 D.跨边界性、多样性 10.以下关于职业生涯形态描述错误的是(C) A.易变性职业生涯和无边界职业生涯强调职业生涯发展呈现出的无限可能性,以及怎样识别并利用这些机会取得成功。 B.易变性职业生涯与无边界职业生涯强调以灵活的职业选择的提升替代长期雇佣关系,使员工能够跨越不同组织实现持续就业。 C.传统职业生涯、易变性职业生涯及无边界职业生涯出现在同一阶段。 D.易变性职业生涯与无边界职业生涯从业者会更重视心理意义上的职业成功感。 多选题: 1.以下描述属于非理性职业信念的为(ABC)。 A.当前社会职位几乎饱和,找不到什么好工作。 B.每个人终身只能有一个适合于他的职业。 C.专业工作所要求的条件非常苛刻,我不是这个专业,一定做不了。 D.创业不一定能成功,但一定能积累经验。 2.自20世纪50年代起,生涯发展大师舒伯(Donald E.Super)将职业生涯发展分为成长阶段、探索阶段、建立阶段、维持阶段与衰退阶段这5个主要阶段。大学生处于哪一阶段(B) A.成长阶段 B.探索阶段 C.建立阶段 D.维持阶段 3.以下哪些属于探索职业的方法(ABCD)。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.360docs.net/doc/c013297235.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

2016高校邦职业生涯规划答案

第一章检测 1、【多选题】机遇事件学习理论有哪些观点? ·A追求的目标是创造更令人满意的生活 ·B鼓励每个人进行探索活动 ·C充分利用偶然事件带来的好处 ·D推动终身学习 2、【多选题】大学教育的价值是什么? ·A丰富知识 ·B完善人格 ·C为未来的生活打下坚实基础 3、【多选题】大学生活的终点是? ·A挖掘自身的能力素质 ·B完善自身的人格 ·C了解用人单位的真实需求 ·D将自身能力与企业需求进行对接 4、【单选题】以下哪种不属于职业生涯规划的步骤?·D找一份好工作 第二章检测 1、【单选题】影响活动效果的基本因素是? ·D能力 2、【多选题】以下哪些属于生涯价值?

·A独立自主 ·B成就满足 ·C安全稳定 ·D工作环境 3、【多选题】以个人能量的集中指向为依据分为哪两种类型? ·A内倾 ·B外倾 4、【多选题】自我探索与职业匹配的方法有哪些? ·B通过专业课的学习提升内容性技能 ·C通过学习和社团活动提升功能性技能 ·D通过对职业目标和职场的了解提成适应性技能 第三章检测 1、【单选题】生涯人物访谈有哪些作用? ·A帮助了解职场各种行业的环境与文化 2、【多选题】职业分类有哪些? ·A农林牧副鱼 ·B各类专业技术人员 ·C办事人员与有关人员 ·D商业与服务业人员 3、【多选题】这个故事中的工作获得者为何会抱怨这份“最好的工作”·A与自己一直生存的城市气候不同

·B太忙碌 4、【多选题】职场中技能有哪些方面?·A内容性技能 ·B功能性技能 ·D适应性技能 第四章检测 1、【多选题】成功就业的核心内容是什么?·A理想职业与自身能力是否匹配 ·B一个合适的机会 ·C最终获得工作机会 2、【单选题】大二的职业生涯规划重点是?·B拓展自己的职业地平线 3、【多选题】在职研究生分为哪两种?·A只有学位没有学历 ·B既有学位也有学历 4、【单选题】职业决策的决定性内容是?·A职业目标 第五章检测 1、【多选题】职业发展资源有哪些方面?·A自我所存在的资源 ·D外部资源

职业生涯规划的环境分析

第四章职业生涯规划的环境分析 【学习要点】 1.认识和理解职业生涯规划的外部环境对职业发展的要求、影响及作用。 2.理解职业阻隔的因素,以及如何突破职业阻隔,从在校、实习、求职、工作、职业发展的不同阶段一步步迈向职业规划目标。 第一节外部环境分析 有一句广告词非常经典:“心有多大,舞台就有多大。”作为新时代的弄潮儿和主角的大学生们,从学校的“小舞台”到社会的“大舞台”,是否已经做好了充分的准备?如何在聚光灯下尽情地展示自己的才华和舞姿呢?对于这个“大舞台”自己又了解多少?越来越多的大学生都开始进行职业生涯规划,而一份有效的职业生涯规划要求我们全面认识、了解自己,也要清楚地认识外部环境特征,以评估职业机会…… 为了更好地进行职业选择与职业生涯规划,必须对外部环境进行分析,通过外部环境分析弄清环境对职业发展的要求、影响及作用,对各种影响因素加以衡量、评估,并做出反应。 一、社会环境整体分析 (一)家庭环境分析

任何人的性格和品质的形成及个人的成长都离不开家庭环境的影响,大学生在进行职业生涯规划时,考虑更多的是家庭的经济状况、家人期望、家族文化等因素对本人的影响。个人职业发展规划的确立,总是同自身的成长经历和家庭环境相关联的。个人在成长过程中,在不同时期也会根据自己的成长经历和所受教育的情况,不断修正、调整,并最终确立职业理想和职业计划。正确而全面地评估家庭情况才能有针对性地设计适合自己的职业规划。 下面是三个家庭环境分析的例子。 例 1 我家在农村,我家有五口人,仅靠父母耕种三亩田地维持生活,弟弟和我都在读书。家庭很贫困,而且负担很重。我爷爷是文盲,父亲是高中毕业生,母亲是初中生。亲戚们的经济状况也都不好。所以,现在家庭不能够提供给我更多的帮助,我只有靠自己了。为了减轻父母的负担,我特意向学院申请了勤工俭学工作。我充分利用课余时间去做这些工作,为自己挣一部分生活费,同时也充分锻炼了能力。 …… (二)学校环境分析 学校环境是指所在学校的教学特色与优势、专业的选择、社会实践经验等…… (三)社会环境分析 …… 对社会环境因素的了解主要包括以下几个方面:1.社会政策,

汇编语言程序设计课程教学大纲

课程教学大纲 (理论课) 课程名称:汇编语言程序设计 适用专业:计算机科学与技术 课程类别:学科基础课 制订时间: 2006年8月 数学与计算机科学学院制

汇编语言程序设计课程教学大纲 (2002年制订,2006年修订) 一、课程代码:0502121009 二、课程类别:学科基础课程 三、预修课程:计算机导论、高级语言程序设计等 四、学分: 4学分 五、学时: 86学时(其中实验部分32学时) 六、课程概述: 汇编语言是计算机能提供给用户最快也最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。 汇编语言作为计算机专业的一门必修课程是了解计算机体系结构和操作系统的最佳切入点。通过汇编语言课程的学习,对计算机理论中包括CPU体系结构、指令调度方式、存储器管理、基本输入输出接口的理解都会有一个比较本质而且直观的认识。在对汇编语言实际运用的基础上同时还能帮助对高级语言程序设计的深入体会,包括变量的组织,地址的访问,循环与分支在机器码中的处理,调用函数时参数的传递等,所以汇编语言在本专业中是一门核心的课程,通过对本课程的学习是加深对后续课程认识的基础。 七、教学目的: 通过对本课程的学习,掌握8086微处理器的寄存器组和基本寻址方式,学生要达到对程序在计算机中的基本调度有一定认识,对二进制基础理论有深入的理解,同时熟练掌握8086汇编语言的编写方式,掌握基本的系统调用,具备良好的源程序调试能力以及最基本的、实模式下的反汇编能力。

汇编语言程序设计

《汇编语言程序设计》课程教学大纲 学时:32 学分:2 理论学时:24 实验学时:8 面向专业:电科、电信、通信课程代码:B2700009 先开课程:C语言程序设计课程性质:必修 执笔人:王艳春审定人:陈龙猛、张金政 第一部分:理论教学部分 一、说明 1、课程的性质、地位和任务 本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。 2、课程教学和教改基本要求 课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求: ①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧; ②具有阅读,分析汇编语言程序的能力; ③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行 过程及debug工具的调试手段。

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计 实验一熟悉、使用DEBUG调试工具 一.上机目的: 1.了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 3.掌握汇编语言的编辑、汇编及连接的过程。 4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。 二.实验内容: 1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。 3.运用LINK.EXE文件进行连接,形成*.EXE文件。 4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。 5.运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。 程序清单: 多字节非压缩型BCD数除法(88754/6=14792) DA TA SEGMENT A D B 8,8,7,5,4 B DB 6 C DB 5DUP (0) N EQU 5 DA TA ENDS CODE SEGMENT ASSUME CS:CODE;DS:DATA;ES:DATA, START MOV AX,DA TA MOV DS,AX MOV ES,AX CLD LEA SI,A LEB DI,C MOV CX,N MOV AH,0 LP1:LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C

汇编教程汇编语言编程实例

汇编语言编程实例一这一章,我们要把我们已学的知识集合起来。具体来讲,我们来写一个使用ODBC APIs的程序.为简单起见,这个程序中我使用Microsoft的Access数据库(Microso ft Access 97) . 注意:如果你使用的windows.inc 是1.18及其以下版本,在开始编译之前要修改其中的一个小bug.在windows.inc中查找 "SQL_NULL_HANDLE",将得到下面这行: SQL_NULL_HANDLE equ 0L 将0后面的"L"删除,象这样: SQL_NULL_HANDLE equ 0 这个程序是一个基于对话框的程序,有一个简单的菜单.当用户选择"connect"时,它将试图连接test.mdb数据库,如果连接成功,将显示由ODBC驱动程序返回的完整连接字符串.接下来,用户可选择"View All Records"命令,程序会使用listview control来显示数据库中的所有数据.用户还可以选择"Query"命令来查询特定的记录.例子程序将会显示一个小对话框提示用户输入想找的人名.当用户按下OK钮或回车键,程序将执行一个查询来查找符合条件的记录.当用户完成对数据库的操作时,可以选择"disconnect"命令与数据库断开连接. 现在看一下源程序: .386 .model flat,stdcall include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\odbc32.inc include \masm32\include\comctl32.inc include \masm32\include\user32.inc includelib \masm32\lib\odbc32.lib includelib \masm32\lib\comctl32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib IDD_MAINDLG equ 101 IDR_MAINMENU equ 102 IDC_DATALIST equ 1000 IDM_CONNECT equ 40001 IDM_DISCONNECT equ 40002 IDM_QUERY equ 40003 IDC_NAME equ 1000 IDC_OK equ 1001 IDC_CANCEL equ 1002 IDM_CUSTOMQUERY equ 40004 IDD_QUERYDLG equ 102 DlgProc proto hDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD

8086汇编语言程序设计实验指导书.

汇编语言上机实验指导书 一、概述 上机实验总学时为16学时,其中综合性实验为2学时。实验共有6项暂定为8次,每次2学时。 1.实验辅导的主要内容 实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。 2.实验的软硬件要求 关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。 3.加强实践能力的培养 实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括: 实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等; 开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。 对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。 实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性) 1.实验目的: (1) 熟悉汇编语言运行环境和方法 (2)了解如何使用汇编语言编制程序 (3) 熟悉DEBUG有关命令的使用方法 (4) 利用DEBUG掌握有关指令的功能 (5) 利用DEBUG运行简单的程序段 2.实验内容 (1)学会输入、编辑汇编语言程序 (2)学会对汇编语言程序进行汇编、连接和运行 (3)进入和退出DEBUG程序 (4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3.实验准备 (1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。 (2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。 (3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’;(1)仔细阅读有关DEBUG 命令的内容,对有关命令,都要事先准备好使用的例子。 4.实验步骤 (1)在DOS提示符下,进入MASM目录。 (2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 ①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm ②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc 不断修改错误,直至汇编通过为止。 ③用连接程序link产生执行文件exe.例:link abc ④执行程序 可直接从DOS执行程序,即在DOS环境中,输入文件名即可。 (3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。 5.实验报告要求 (1)源程序清单。 (2) 如何启动和退出EDIT程序。 (3) 如何对源程序进行汇编及编辑。

10052职业生涯规划与管理复习资料

10052职业生涯规划与管理复习资料 第一章职业生涯管理概述 一、名词解释 1.职业:职业是指参与社会分工,利用专门的知识和技能,创造物质财富、精神财富,获得合理报酬,满足物质生活、精神生活的工作。 2.职业分层:是指通过人们对某种职业所对应的经济收入,权力地位和社会声望进行评价,从而对多种职业进行排序的分层方法。 3.职业分类:是指按照一定的规则和标准把一般特征和本质特征相同或相似的社会职业,分成并归纳到一定类别系统中去的过程。 4.职业声望:是人们对职业的社会评价,是职业社会学研究的范畴之一。 5.职业期望:又称职业意向,是劳动者对某种职业的向往,也就是希望自己从事某项职业的态度倾向 6.职业价值观:每种职业都有各自的特性,不同的人对职业意义的认识,对职业好坏有不同的评价和取向。 7.职业选择:是指人们从自己的职业期望,职业理想出发,依据自己的兴趣,能力,特点等自身素质,从社会现有的职业中选择一种适合自己的职业的过程。 8.职业生涯:是指人的一生中所经历的职业历程 9.内职业生涯:是指从事一种职业时的知识,观念,经验,能力,心理素质,内心感受等因素的组合及其变化的过程。 10.外职业生涯:是指从事职业时的工作单位,工作时间,工作地点,工作内容,工作职务与职称,工作环境,工资待遇等因素的组合及其变化过程。 11.职业机会:是指个体在求职或职业发展中分析各种因素后判断可实现职业目标的程度。 二、填空 1.构成职业选择的因素:职业能力,职业意向,职业岗位。 2.决定职业声望高低的主要因素:职业环境、职业功能、任职者素质。 3.职业声望调查与评价的主要方法:自评法、民意法、指标法。

汇编语言程序设计

第4章 汇编语言程序设计 §4.1 汇编语言的模式 一、汇编语言源程序的一般模式 [Name 模块名] [Title 标题] [定义宏] [定义数据段] [定义附加段] [定义堆栈段] 定义代码段 源程序结束 中括号括起的部分可以省略,可见在一个汇编语言源程序中必须要定义代码段,并且必须有源程序结束指令。 二、8086汇编语言程序的一个例子 Pg90。 §4.2 语句行的构成 汇编语言中的语句一般分为两种类型:指令性语句和指示性语句。 指令性语句的格式为: [标号:] 助记符 [操作数1[,操作数2]] [;注释] 指示性语句的格式为: [名称] 助记符 [参数1,参数2,……] [;注释] 标号和名称都是编程人员根据需要和一定的规则任意取的。也可以认为汇编语言的语句行是由标记和分隔符(空格)构成。 一、标记 1.IBM宏汇编的字符集 (1)字母 (2)数字符 (3)特殊字符 2.界符 用于定界一个标记的结束或一个标记的开始,本身具有一定的意义。 3.常量 出现在汇编语言源程序中的固定值称为常量。 (1)数值常量 ①二进制:以字母B结束。 ②十进制:以字母D或无字母结束。

③八进制:以字母Q(或O)结束。 ④十六进制:以字母H结束。 (2)字符常量 指用单引号或双引号引起的字符或字符串。 4.标识符 由程序员自己建立的字符序列(标号或名称)。一个标识符不能超过31个字符,不能以数字开头。 5.保留字 汇编语言中具有特殊意义的字符序列。 6.注释 一行中分号以后的部分。用于对一段或一行程序进行说明,便于阅读和理解。 二、符号 具有一定意义的字符序列。 1.寄存器名 2.变量 段属性、偏移属性、类型属性 3.标号 段属性、偏移属性、类型属性 4.常数 5.其它 三、表达式 由操作数和运算符组合而成的序列。 1.操作数 (1)立即数 (2)寄存器操作数 (3)存储器操作数 2.运算符 (1)算术运算符 +、-、*、/、MOD(求余) (2)逻辑运算符 AND、OR、NOT、XOR (3)关系运算符 EQ、NE、LT、LE、GT、GE 结果为“假”时,返回0,结果为“真”时,返回二进制全1。 §4.3 指示性语句

《汇编语言程序设计》 实验指导书2012.5.24)

《汇编语言程序设计》课程实验指导书(Assembly Language Programming) 计算机科学与技术系 杨定安编写 佛山科学技术学院 2012 年 5 月

摘要 汇编语言实验主要使学生掌握DEBUG或DEB2000调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

目录 实验一宏汇编程序(MASM)及汇编语言上机过程 (4) 实验二程序的基本结构练习 (8) 实验三汇编编译器的使用及程序调试 (11) 实验四分支程序设计 (17) 实验五循环程序设计 (19) 实验六子程序设计 (23) 实验七汇编语言与C语言混合程序设计 (29)

实验一宏汇编程序(MASM)及汇编语言上机过程 一、实验目的 1.通过实验了解和熟悉微机系统的配置。 2.学习在DEBUG状态下输入汇编源程序的方法。 3.初步掌握调试(在DEBUG状态下)的过程。 二、实验原理 1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。用单步跟踪的方法验证指令的功能。 2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。 注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”; ⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。 三、实验仪器 微机一台,U盘一块。 四、实验步骤 1.开机和关机操作顺序 开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。 关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。 2. 装入DEBUG程序 若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。一般C盘上装有DEBUG和DEB2000软件,若没有,可以用复制命令从其它盘拷贝过来,然后从装有DEBUG和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。例如: C :\MASM> DEB2000↙(↙回车符) -(-DEBUG 提示符) 当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。 4. 用DEBUG的Register命令检查所有寄存器内容,并作记录。命令格式: R [寄存器名] 检查和修改寄存器内容的命令R,它有三种方式: 1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R R命令显示中标志位状态的含义如下表所示: 标志名置位复位

8086 汇编语言顺序程序设计

汇编语言程序设计实验报告 学院:计算机科学与技术学院专业:计算机科学与技术班级:计科131

MOV DS,AX MOV AX,WORD PTR N1 MOV DX,WORD PTR N1+2 MOV CX,WORD PTR N2 MOV BX,WORD PTR N2+2 ADD AX,CX ADC DX,BX MOV WORD PTR N3,AX MOV WORD PTR N3+2,DX MOV AH,4CH INT 21H CODE ENDS END START 使用相应的文本编辑器建立文件two.asm,内容如上所示。 二. 生成可执行文件: 1.汇编: C:\masm> masm two; 2.连接: C:\masm> link two; 三.运行及调试: 1. 运行: C:\masm>debug two.exe -U0 ;通过反汇编查找程序的断点 -T=0 2 ;加载数据段 -D0 ;查看原始数据是否正确 -G=0 1F ;运行程序至断点1F 处 -D0 ;查看程序运行结果

2.调试: 若要判断此程序对于其它32 位数相加是否正确,则需要使用DEBUG 进行程序调试。 实验二:编程实现:将从2000H 单元开始的连续128 个单元的内容进行清零 一. 编程 CODE SEGMENT ASSUME CS:CODE,DS:CODE START: MOV BX,2000H MOV CX,128 MOV AL,00H L1: MOV [BX],AL INC BX LOOP L1 MOV AH,4CH INT 21H CODE ENDS END START 二.使用编辑器建立源程序文件four.asm。 三.生成可执行文件: 1.汇编: C:\masm> masm four; 2.连接: C:\masm> link four;

相关文档
最新文档