LOGO语言基本语法应用实例(程序实例)

LOGO语言基本语法应用实例(程序实例)
LOGO语言基本语法应用实例(程序实例)

LOGO语言基本语法应用实例(程序实例)

说明:

1.LOGO语言目前是小学用于培养儿童基本编程思想的有效工具,而网络上LOGO程序资料并不算充裕,为初步接触LOGO语言的教师或学生多提供一些参考程序是本文作者上传本文档的初衷;

2.以下程序在flash版logo语言编译程序(FLOGO999)中运行正常,只要新建*.LOG文件,将分割线以下内容复制其中就可以使用;

3.本文的会不定时更新。

———————————————————————————————————————;以下程序在FLOGO999中运行正常

;REPEAT及系统设置的使用示例

to shanzi :L

rt 75

make "C 0

repeat 15 [setpc :C setw :C*2 fd :L setfont "黑体:C+10 4 tt :C bk :L+:L/3 fd :L/3 lt 10 make "C :C+1 ]

rt 75

;递归三角形

to DGSJX :L :N ;DGSJX 200 3

IF :N=1 THEN STOP

SJX :L DGSJX :L/2 :N-1

RT 30 FD :L LT 30

SJX :L DGSJX :L/2 :N-1

RT 150 FD :L LT 150

SJX :L DGSJX :L/2 :N-1

LT 90 FD :L RT 90

end

TO SJX :L

RT 30

REPEAT 3[FD :L RT 120]

LT 30

END

;递归正方形

to DGZFX :L :N ;DGZFX 200 3

IF :N=1 THEN STOP

ZFX :L

FD :L ZFX :L

DGZFX :L/2 :N-1

RT 90 FD :L LT 90 ZFX :L

BK :L ZFX :L

DGZFX :L/2 :N-1

LT 90 FD :L RT 90

end

TO ZFX :L

REPEAT 4[FD :L RT 90]

END

;FOR语句示例

to myfor

for "x 1 10 [ fd :x*20 rt 90 ]

end

;WHILE语句示例

to mywhile

make "x 1

while [ :x<10 ] [fd :x*20 rt 90 make "x :x+1 ] end

;判断语句AND和OR使用示例

to myandor :a :b

draw

if :b>0 and :a>0 then fd 100 tt "同正

if :a<0 and :b<0 then bk 100 tt "同负

if :a=0 or :b=0 then rt 90 tt "有0值

end

logo语言练习5

练习题5 姓名:_________班级:________分数:_________ 一、选择填空:(每题2分,共8分) (1)进入LOGO的命令是 ____e__ 。 A. LOGO B. DRAW C. 键盘 D. 显示器 E. 鼠标 F. 中央处理器 (2)在编辑过程时,输入上档符号,如“+”号时,要用____c____键,换行时要用 ___d___ 键,把光标快速移到行尾,要用 ___b__ 键,前翻一页,要用____a__ 键,退出编辑,回到图文混合显示方式时,要用 ___e___ 键。 A. F2 B. END C. SHIFT D. 回车键 E. HOME F. PageUp 二、填空:(每题2,共10分) (1)写出命令的名称:BK __后退__ LT _左转__ PU _提笔 HT 隐龟 CS _____。 (3)LOGO系统提供了两种执行方式,它们是 ______ 和 ________ 。 (4)背景的命令是_setbg____、笔色的命令是_setpc____、填充颜色的命令是fill_____ (5)改变笔的粗细命令是:_setw__________ 三、根据过程画出对应图形:(每题3分,共18分) (1) TO A1 HT FD 60 LT 90 FD 20 RT 120 FD 60 RT 120 FD 60 RT 120 FD 20 LT 90 FD 60 RT 90 FD 20 END 执行 A1 (2)TO A2 REPEAT 5 [ LT 18 FD 50 RT 90 ] END 执行 A2 (3)TO A3 REPEAT 4 [ REPEAT 3 [ FD 20 RT 90 FD 60 RT 90 ] LT 90 ] END 执行 A3 (4)TO A4 DRAW REPEAT 4 [ A5 RT 90 ] END TO A5 FD 98 RT 135 FD 40 RT 45 FD 40 RT 45 FD 40 RT 135 END 执行 A4 (5)TO A6 :N REPEAT :N [ FD 40 RT 360/:N ] END TO A7 :N REPEAT 4 [ A6 :N+1 FD 40 ] HT

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

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

实验四循环结构汇编语言程序设计 一、实验目的 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)

必须掌握的_LOGO语言命令

必须掌握的 LOGO语言的命令 1、前进命令: FD 2、后退命令: BK [格式]:FORWARD :X [格式]: BACK :X [缩写]:FD :X [缩写]: BK :X [功能]: 使海龟向前移动指定的 X步。 [功能]: 使海龟向后倒退指定的 X步。 3、右转命令: RT 4、左转命令: LT [格式]: RIGHT :X [格式]: LEFT :X [缩写]: RT :X [缩写]: LT :X [功能]: 海龟向右转 X度,(按顺时针方向)。[功能]: 海龟向左转X度,(按逆时针方向)。 5、藏龟命令: HT 6、显龟命令: ST [格式]: HIDETURTLE [格式]: SHOWTURTLE [缩写]: HT [缩写]: ST [功能]: 让海龟隐身。 [功能]: 让海龟重现。 7、回家命令: HOME [格式]:HOME [功能]:海龟回到源点上。但是不清除屏幕,不改变海龟的其它状态。 8、横移命令: SETX [格式]: SETX :X [功能]: 海龟水平移动到命令中 :X所指定的坐标位置, 并留下踪迹。 9、纵移命令: SETY [格式]: SETY :Y [功能]: 海龟垂直移动到命令中 :Y所指定的坐标位置, 并留下踪迹。 10、走到命令: SETXY [格式]: SETXY [:X :Y] 或 SETXY SE :X :Y [功能]: 海龟从当前位置移到坐标为 (X,Y) 的地方,(在落笔的状态下)并在移动的线路上留下一段直线。(后者可使用变量、表达式) 11、角度命令: SETH [格式]: SETH :D [功能]: 将海龟顺时针转到指定的方向上。 [注意]: 海龟初始时头向上, 定位为0°, 旋转一周为360°。 12、查询海龟的横坐标:XCOR [格式]: XCOR [功能]: 输出海龟当前的水平位置(X轴上)。 13、查询海龟的纵坐标:YCOR [格式]: YCOR [功能]: 输出海龟当前的垂直位置(Y轴上)。 14、查询海龟当前的方向:HEADING [格式]: HEADING [功能]: 输出海龟当前的方向(角度)。 15、清屏复位命令:CS [格式]:CLEARSCREEN [缩写]:CS [功能]:清除屏幕上的图形,让海龟回到源点,头向上。但是海龟的其他状态(画笔的颜色、粗细、花纹等)都不变。16、清屏命令: CLEAN [格式]:CLEAN [功能]:清除屏幕上的图形, 但是不改变海龟的状态(当前的位置和方向)。 17、重复命令: REPEAT [格式]: REPEAT 次数[执行重复的内容] [功能]: 让计算机重复执行一些命令。 18、画矩形命令:STAMPRECT [格式]: STAMPRECT :X :Y (画空心矩形) (STAMPRECT :X :Y "TRUE) (画实心矩形) [功能]: 以海龟原来所在的位置为起始点画矩形。 [注意]: ⑴用STAMPRECT命令画出来的矩形始终是垂直的。 ⑵引号和TURE之间不留空格。 19、画椭圆命令: STAMPOVAL [格式]: STAMPOVAL :X :Y (画空心椭圆形) (STAMPOVAL :X :Y "TRUE) (画实心椭圆形) [功能]: 以海龟原来所在的位置为圆心画椭圆。 [注意]: ⑴如果X方向的半径和Y方向的半径相等, 那么画出来的就是一个圆。 ⑵用STAMPOVAL命令画出来的椭圆始终是顺着X, Y方向画的。海龟最后停留在圆的中心。

51单片机汇编程序范例

16位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。 程序可见: http: 32.html中的HEX2BCD子程序。 .说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广。做而论道曾经利用它的思路,很容易的编写出了48位二进制数变换成16位BCD码的程序。 但是这个程序有个明显的缺点,就是执行时间太长,转换16位二进制数,就必须循环16遍,转换48位二进制数,就必须循环48遍。 上述的HEX2BCD子程序,虽然长度仅仅为26字节,执行时间却要用331个机器周期。.单片机系统多半是用于各种类型的控制场合,很多时候都是需要“争分夺秒”的,在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。 为了提高整机运行的速度,在多年前,做而论道就另外编写了一个转换程序,程序的长度为81字节,执行时间是81个机器周期,(这两个数字怎么这么巧!)执行时间仅仅是经典程序的!.近来,在网上发现了一个链接: ,也对这个经典转换程序进行了改进,话是说了不少,只是没有实质性的东西。这篇文章提到的程序,一直也没有找到,也难辩真假。 这篇文章好像是选自某个著名杂志,但是在术语的使用上,有着明显的漏洞,不像是专业人员的手笔。比如说文中提到的:

“使用51条指令代码,但执行这段程序却要耗费312个指令周期”,就是败笔。51条指令代码,真不知道说的是什么,指令周期是因各种机型和指令而异的,也不能表示确切的时间。 .下面说说做而论道的编程思路。;----------------------------------------------------------------------- ;已知16位二进制整数n以b15~b0表示,取值范围为0~65535。 ;那么可以写成: ; n = [b15 ~ b0] ;把16位数分解成高8位、低8位来写,也是常见的形式: ; n = [b15~b8] * 256 + [b7~b0] ;那么,写成下列形式,也就可以理解了: ; n = [b15~b12] * 4096 + [b11~b0] ;式中高4位[b15~b12]取值范围为0~15,代表了4096的个数; ;上式可以变形为: ; n = [b15~b12] * 4000 + {[b15~b12] * (100 - 4) + [b11~b0]} ;用x代表[b15~b12],有: ; n =x * 4000 + {x * (100 - 4) + [b11~b0]} ;即: ; n =4*x (千位) + x (百位) + [b11~b0] - 4*x ;写到这里,就可以看出一点BCD码变换的意思来了。 ;;上式中后面的位:

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

目录 目录 (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执行,观察执行结果。 (设置存储器的值)

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

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

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 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 程序运行结果

logo语言教程

logo语言教程 LOGO是一种计算机程序设计语言,LOGO源自希腊文,原意为思想,最初的LOGO语言是由一名叫佩伯特的心理学家设计的。他在从事人工智能的研究中,一个像海龟的机械装置,触发了他的灵感。他利用广博的知识及聪明的才智完成了LOGO语言的设计。佩伯特希望孩子不要机械地记忆事实,强调创造性的探索。他说:“学校的多数课程是记忆一些数据和科学事实,却很少着眼于真正意义上的学习与思考。”他用LOGO语言启发孩子们学会学习,一些孩子用LOGO语言设计出了真正的程序。 LOGO语言是一种结构化程序设计语言。它是交互式的,为人们提供了良好的编程环境;它是模块化的,便于程序的修改与扩充;它是过程化的,包含了过程、参数、变量等重要概念,并允许递归调用;它有丰富的数据结构类型;有生动的图形处理功能;。它不仅具备多种优秀程序设计语就能掌握LOGO的基本绘图指令,高年级学LOGO程序设计自然不是难事。 LOGO语言是中小学生十分喜爱的一种计算机程序设计语言,它里面有一个绘画能手——小海龟。小海龟本领高强,会唱歌、会画画,多才多艺。我们可以指挥小海龟在屏幕上画出丰富多彩的图画,奏出美妙动听的音乐。你是不是想和神通广大的小海龟交朋友? 对于在LOGO语言中,输入命令就被立即执行,我们通常称之为“立即方式”,或“命令方式”。 1.前进命令FORWARD(简写FD) 【格式】 FD 步长 【功能】命令小海龟按当前方向前进指定的步长。 【说明】 ⑴ 在LOGO语言中,命令与数据之间是以空格分隔的。如,在输入的前进命令和步长之间必须用空格分隔。 ⑵ 小海龟移动时,要特别注意它的当前位置和方向,当前方向就是它的头所指的方向。 ⑶ 让小海龟移动时,是通过步长的长短来控制机器人前进的距离。 ⑷ 步长的具体值就是指距离的长短(小海龟的默认值为每1个步长为0.5厘米)。如FD 100中步长值为 100,是让小海龟前进50厘米。 ⑸ 输入的LOGO命令既可以是大写字母,也可以是小写字母,例如,“fd 100”命令,也可以写成“FD 100”,两种输入方式的执行效果相同 2.后退命令BACK(简写BK) 【格式】 BK 步长 【功能】命令小海龟按当前方向后退指定的步长。 【说明】 ⑴ 让小海龟移动时,是通过步长来控制小海龟后退的距离。 ⑵ 小海龟移动时,要特别注意它的当前位置和方向,后退方向就是它的头所指的反方向。⑶ 步长的具体值就是指步长的长短(小海龟的默认值为每一步长为

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

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.360docs.net/doc/7f10685298.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”部分可以分别输入相应的变量定义和指令。

第四章MCS-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

LOGO语言命令

LOGO语言命令 YCOR 输出第一个活动海龟的Y坐标 XCOR 输出第一个活动海龟的X坐标 WAIT 等待n/100秒 WHILE 当条件为真时,重复执行命令表 WHO 输出由TELL命令定义的当前活动海龟的代码表 WIDTH 输出第一个活动海龟笔的宽度 WINDOW 设置图形窗口为窗口模式 WINDOWPOINT 将海龟坐标[x y]转换为图形窗口坐标 .WINDOWS 下面两个命令为Windows API调用 .WINDOWSL WINSIZE 输出图形窗口的大小 WINVER 输出Windows的版本 .WNDPROC 调用属于LOGO设计环境主窗体的Windows消息回收程序WORD 将各输入项合成一个字输出 WORD? 检查对象是否是一个字 WRAP 将图形窗口设置为WRAP方式 .WRITE 写二进制或文本数据到文件 VERSION 输出PC-LOGO的版本信息 UNBURY 取消对指定对象的隐藏 UNBURYALL 取消对所有对象的隐藏 UNBURYNAME 取消对指定变量的隐藏 UNBURYPROC 取消对指定过程的隐藏 UNBURYPROP 取消对指定属性的隐藏 UNGETBYTE 将数值n对应的ASCII码字符插入输入流首位 TAB 系统变量,设置编辑时制表符的停留位置。 TELL 激活一个或一组海龟 TELLALL 激活从n1到n2范围内的海龟 TEST 测试其输入的真值 TEXT 以表的形式输出指定的过程 TEXTARRAY 把字节数组转换成字 TEXTBG 将听众窗口的背景颜色变为n号色 TEXTFG 将听众窗口的文本颜色变为n号色 TEXTSCREEN 将听众窗口最大化 THEN IF命令的一部分 THING 输出变量w的值 THROW 与CATCH配合使用,若其参数W与CATCH的参数W相同,则返 回到CATCH的位置去继续执行 TIME 以表的形式输出当前时间 TIMER 计时开始,间隔为n/100秒 TO 开始定义过程 TONE 播放一个频率为freq赫兹,长度为dura/18.2秒的声音TOPLEVEL 停止一个过程的执行,返回命令状态

汇编语言例子

实验三: 1)题目:在内存中从ARRAY开始的连续三个字节单元存放着30H,40H,50H。编制程序将这三个连续的数据传送到内存TABLE开始的单元。 DATA SEGMENT ARRAY DB 30H,40H,50H 定义数据段 TABLE DB 3 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,ARRAY LEA DI,TABLE MOV CX,3 REP MOVSB JMP $ CODE ENDS END START (2)题目:把内存2000H和3000H字单元的内容相加,结果存入4000H单元。(不考虑溢出) DATA SEGMENT ORG 2000H DW 1234H ORG 3000H DW 5678H ORG 4000H DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,[2000H] ADD AX,[3000H] MOV [4000H],AX JMP $ CODE ENDS END START 实验四 1、数据传送指令和算术运算指令完成NUM1和NUM2相加,结果放入SUM中。

DATA SEGMENT NUM1 DW 0012H,0030H,0FC21H ; 数1 NUM2 DW 3E81H,44E9H,6D70H ; 数2 SUM D W 3 DUP(?) ; 结果单元 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX MOV CX,3 LEA SI,NUM1 LEA DI,NUM2 LEA AX,SUM HE: MOV BX,[SI] ADD BX,[DI] MOV [AX],BX INC SI INC DI INC AX LOOP HE MOV AH, 4CH ; 返回DOS INT 21H CODE ENDS END START 2、内存中自TABLE开始的七个单元连续存放着自然数0至6的立方值(称作立方表)。;任给一数X(0≤X≤6)在XX单元,查表求X的立方值,并把结果存入YY单元中。;提示用XLAT指令 DATA SEGMENT TABLE DB 0H,1H,2H,3H,4H,5H,6H XX DB 1 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,TABLE MOV AL,[XX] XLAT MOV DL,AL MOV AH,02H INT 21H JMP $

LOGO语言基本命令

LOGO语言基本命令 FD前进命令格式:FD步数 BK后退命令格式:BK步数 LT向左转命令格式:LT角度 RT向右转命令格式:RT角度 CS清屏复位命令格式:CS 功能:将绘图屏幕清理干净,并让小海龟回到原位(头向上)。 HOME回家命令格式:HOME 功能:使小海龟回到原位。小海龟在回家的路上,会留下足迹。 PU抬笔命令格式:PU 功能:命令小海龟抬起龟笔,小海龟再移动时,就不会留下足迹。 PD落笔命令格式:PD 功能:命令小海龟落下龟笔,这时的小海龟就又可以画图了。 PE笔擦命令格式:PE 功能:命令小海龟变为橡皮,会擦除它经过的线。 HT藏龟命令格式:HT 功能:命令小海龟隐藏起来。 ST显龟命令格式:ST 功能:命令隐藏起来的小海龟重新显示在屏幕上。 CLEAN清屏格式:CLEAN 功能:清屏后小海龟的位置和方向保持不变 DRAW清屏格式:DRAW 功能:小海龟的位置和方向及窗口的背景色都恢复初始状态。 CT清屏命令格式:CT 矩形命令格式:STAMPRECT 边长1 边长2 功能:让小海龟在当前位置按指定的边长画一个矩形,边长1、边长2分别表示矩形矩形相邻两边的长度。 笔色命令格式:SETPC 颜色代码 功能:设置龟笔的颜色,代码为“0”的黑颜色,是LOGO系统默认的龟笔的颜色。 笔粗命令格式:SETW 笔号 功能:设置龟笔粗细,笔号的范围是1~999,数字越大,龟笔越粗。 椭圆命令 格式:STAMPOVAL X Y 功能:以小海龟当前位置为椭圆中心,画出指定大小的椭圆。 重复命令 格式:REPEAT 重复次数[需要重复的命令] 功能:将方括号内的命令重复执行指定的次数 填色命令 格式:FILL 功能:为封闭图形填入颜色。 保存图形命令 格式:SAVEPIC ’’文件名 功能:将绘图窗口中的图形按指定的文件名存盘。

pc logo语言命令大全

PC LOGO 4.0常用命令一览表 编号英文指令 英文 简码 中文指令用法举例用法说明 1 FORWARD FD 前进FD 100 前进 100 步 2 BACK BK 后退BK 100 后退 100 步 3 RIGHT RT 右转RT 90 右转 90 度 5 PENUP PU 抬笔PU 把笔提起,不留痕迹 6 PENDOWN PD 落笔PD 把笔放下,会留痕迹 7 PENERASE PE 笔擦PE 将走过的地方擦去,恢复画笔输入PD。 8 SETPC 笔色SETPC 9 将笔色设为淡蓝色(n:0-15) 9 SETBG 背景色SETBG 15 将底色设为白色(n:0-15) 10 SETWIDTH SETW 笔粗SETW 1 将笔粗设为1点 11 SHOWTURTLE ST 出现ST 显示小海龟 12 HIDETURTLE HT 隐形HT 不显示小海龟 13 CLEARSCREEN C S 清除CS 清除绘图区,小海龟回原点(0,0) 14 CLEAN 清图CLEAN 清除绘图区,小海龟留在最后的地方 15 CLEARTEXT CT 清文CT 清除文字区 16 HOME 回家HM 小海龟回原点(0,0) 17 SETHEAD SETH 定角SETH 60 设定小海龟的角度为60度(0-360) 18 SETXY 定位SETXY 100 100 把小海龟定位在坐标(100,100) 19 SETX 横坐标SETX 100 把小海龟定位在横坐标(100,Y) 20 SETY 纵坐标SETY 100 把小海龟定位在纵坐标(X,100) 21 SUM 求和函数SUM X Y 或(SUM X Y…) 求几个数的和 22 REMAINDER 余数函数REMAINDER X Y 求X/Y的余数部分 23 QUOTIENT 求商函数QUOTIENT X Y 求X/Y的商 24 DRAW 初始化DRAW 初始化 25 TEXTSCREEN TS 本文TS 进入本文模式 26 SPLITSCREEN S S 图文混合SS 进入图文混合模式 27 FULLSCREEN FS 全图FS 进入全图模式 28 WINDOW WI 穿透WI 小海龟活动范围可穿过绘图区边界 29 FENCE FE 围墙FE 小海龟活动范围限制在绘图

LOGO语言命令大全

LOGO语言命令大全 1、前进命令: FD [格式]:FORWARD :X [缩写]:FD :X [功能]: 使海龟向前移动指定的 X步。 2、后退命令: BK [格式]: BACK :X [缩写]: BK :X [功能]: 使海龟向后倒退指定的 X步。 3、右转命令: RT [格式]: RIGHT :X [缩写]: RT :X [功能]: 海龟向右转 X度,(按顺时针方向)。 4、左转命令: LT [格式]: LEFT :X [缩写]: LT :X [功能]: 海龟向左转X度,(按逆时针方向)。 5、藏龟命令: HT [格式]: HIDETURTLE [缩写]: HT [功能]: 让海龟隐身。 6、显龟命令: ST [格式]: SHOWTURTLE [缩写]: ST [功能]: 让海龟重现。 7、回家命令: HOME [格式]:HOME [功能]:海龟回到源点上。但是不清除屏幕,不改变海龟的其它状态。 8、横移命令: SETX [格式]: SETX :X [功能]: 海龟水平移动到命令中 :X所 指定的坐标位置, 并留下踪迹。 9、纵移命令: SETY [格式]: SETY :Y [功能]: 海龟垂直移动到命令中 :Y所 指定的坐标位置, 并留下踪迹。 10、走到命令: SETXY [格式]: SETXY [:X :Y] 或 SETXY SE : X :Y [功能]: 海龟从当前位置移到坐标为 (X,Y) 的地方,(在落笔的状态下)并在移动 的线路上留下一段直线。(后者可使用变量、 表达式) 11、角度命令: SETH [格式]: SETH :D [功能]: 将海龟顺时针转到指定的方 向上。 [注意]: 海龟初始时头向上, 定位为 0°, 旋转一周为360°。 12、查询海龟的横坐标:XCOR [格式]: XCOR [功能]: 输出海龟当前的水平位置(X 轴上)。 13、查询海龟的纵坐标:YCOR [格式]: YCOR [功能]: 输出海龟当前的垂直位置(Y 轴上)。 14、查询海龟当前的方向:HEADING [格式]: HEADING [功能]: 输出海龟当前的方向(角度)。 15、清屏复位命令:CS [格式]:CLEARSCREEN [缩写]:CS [功能]:清除屏幕上的图形,让海龟回 到源点,头向上。但是海龟的其他状态(画 笔的颜色、粗细、花纹等)都不变。 16、清屏命令: CLEAN [格式]:CLEAN [功能]:清除屏幕上的图形, 但是不改变海 龟的状态(当前的位置和方向)。 17、重复命令: REPEAT [格式]: REPEAT 次数[执行重复的内 容] [功能]: 让计算机重复执行一些命令。 18、画矩形命令:STAMPRECT [格式]: STAMPRECT :X :Y (画空心矩形) (STAMPRECT :X :Y "TRUE) (画实心矩形) [功能]: 以海龟原来所在的位置为起 始点画矩形。 [注意]: ⑴用STAMPRECT命令画出来的 矩形始终是垂直的。 ⑵引号和TURE之间不留空格。 19、画椭圆命令: STAMPOVAL [格式]: STAMPOVAL :X :Y (画空心椭圆形)

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及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

相关文档
最新文档