把汇编源程序变成代码程序的过程是()

把汇编源程序变成代码程序的过程是(),第1张

把汇编源程序变成代码程序的过程是编译。

编译语言不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。

扩展资料:

编译技术的发展

在早期冯诺依曼计算机时期 (20世纪40年代) 程序都是以机器语言编写,机器语言就是实际存储的01代码,编写程序是十分枯燥乏味的。

后来汇编语言代替机器语言一符号形式该处 *** 作指令和地址编码。但汇编语言仍有许多缺点, 阅读理解起来很难,而且必须依赖于特定的机器,如果想使编写好的程序在另一台计算机上运行必须重写。

在20世纪50年代IBM的John Backus带领一个研究小组对FORTRAN高级语言及其编译器进行开发。编译程序的自动生成工具初现端倪,现在很多自动生成工具已经广泛使用例如语法分析工具LEX,语言分析程序YACC等。

在20世纪60年代人们不断的用自编译技术构造编译程序,即用被编译的语言本身来实现该语言的编译程序,但其基本原理和结构大体相同。

ORG 00H

你参考一下这个吧,兄弟没有原理图这个程序没办法给你解释清楚的,还有不加C程序能运行

START:MOV A,#00H ;清除屏幕

MOV P0,A

MOV P2,A

CALL DIS ;调用显示子程序

CALL DELAY ;调用延时子程序

CALL MOVE ;调用左移子程序

JMP START

DIS: MOV R2,#04H ;每个画面2个字,8个字分4次显示

MOV 20H,#00 ;取码指针暂存地址20H初值为00

D4: MOV R4,#00H ;74LS154扫描指针初值

MOV R1,#0FFH ;每幕停留的时间

D5: MOV R6,#32 ;每幕两个字,32个数据码

MOV R0,20H ;取码指针存入R0

D2: CALL READ1 ;调用取码子程序

INC R4 ;扫描下一列

DJNZ R6,D2 ;显示1幕?

MOV R4,#00 ;清除74LS154扫描指针为00

DJNZ R1,D5 ;每幕停留时间到了?

MOV 20H,R0 ;保留取码指针存入20H地址

DJNZ R2,D4 ;2幕显示完毕了?

RET

MOVE:

MOV 20H,#00 ;取码指针暂存地址20H初值为00

MOV R4,#00H ;74LS154扫描指针初值

M1: MOV R1,#0FFH ;每幕停留时间

M2: MOV R6,#32 ;每幕两个字,32个数据码

MOV R0,20H ;取码指针存入R0

M3: CALL READ1 ;调用取码子程序

INC R4 ;扫描下一列

DJNZ R6,M3 ;显示1幕

MOV R4,#00 ;清除74LS154扫描指针为00

DJNZ R1,M2 ;每幕停留时间到了

MOV A,20H ;取码指针载入A

ADD A,#08H ;加8

MOV 20H,A ;再存入20H地址取码指针

XRL A,#128 ;8个字是否都左移完毕了

JNZ M1

RET

READ1:MOV A,R4 ;扫描指针载入A

MOV P1,A ;输出至P1扫描列

MOV A,R0 ;取码指针载入A

MOV DPTR,#TABLE ;数据指针指到TABLE

MOVC A,@A+DPTR ;到TABLE取上半部的数据码

MOV P0,A ;输出至P0显示

INC R0 ;取下一个码

MOV A,R0 ;取码指针载入A

MOV DPTR,#TABLE ;数据指针指到TABLE

MOVC A,@A+DPTR ;到TABLE 取下半部的数据码

MOV P2,A ;输出至p2显示

INC R0 ;取码值加1

MOV R3,#25 ;延时

DJNZ R3,$

MOV A,#00H ;清除屏幕

MOV P0,A

MOV P2,A

RET

DELAY:

MOV R3,#200

D7: MOV R5,#248

DJNZ R5,$

DJNZ R3,D7

RET

;1 "振"

TABLE:DB 08H,40H,08H,42H

DB 08H,81H,0FFH,0FEH

DB 09H,02H,0AH,0CH

DB 7FH,0F0H,49H,00H

DB 49H,0FFH,49H,02H

DB 49H,0E0H,49H,18H

DB 59H,14H,0CBH,26H

DB 41H,44H,00H,00H

;2 "兴"

DB 00H,80H,00H,81H

DB 20H,82H,18H,84H

DB 0CH,88H,00H,98H

DB 0C0H,80H,3CH,80H

DB 00H,80H,01H,90H

DB 06H,88H,18H,84H

DB 60H,86H,01H,83H

DB 00H,80H,00H,00H

;3 "中"

DB 00H,00H,1FH,0C0H

DB 10H,80H,10H,80H

DB 10H,80H,10H,80H

DB 10H,80H,0FFH,0FFH

DB 10H,80H,10H,80H

DB 10H,80H,10H,80H

DB 10H,80H,3FH,0C0H

DB 10H,00H,00H,00H

;4 "华"

DB 00H,20H,02H,20H

DB 04H,20H,08H,20H

DB 3FH,0A0H,0C0H,20H

DB 02H,20H,04H,0FFH

DB 08H,20H,0FFH,20H

DB 10H,0A0H,20H,0A0H

DB 60H,0A0H,03H,0A0H

DB 00H,20H,00H,00H

;5 "电"

DB 00H,00H,1FH,0E0H

DB 12H,40H,12H,40H

DB 12H,40H,12H,40H

DB 0FFH,0FCH,12H,42H

DB 12H,42H,12H,42H

DB 12H,42H,3FH,0E2H

DB 10H,02H,00H,0EH

DB 00H,00H,00H,00H

;6 "子"

DB 01H,00H,01H,00H

DB 41H,00H,41H,00H

DB 41H,00H,41H,02H

DB 41H,01H,47H,0FEH

DB 45H,00H,49H,00H

DB 51H,00H,61H,00H

DB 01H,00H,03H,00H

DB 01H,00H,00H,00H

;7 "事"

DB 20H,20H,20H,20H

DB 2EH,0A8H,2AH,0A8H

DB 2AH,0A8H,2AH,0AAH

DB 2AH,0A9H,0FFH,0FEH

DB 2AH,0A8H,2AH,0A8H

DB 2AH,0A8H,2AH,0A8H

DB 2EH,0FCH,60H,20H

DB 20H,20H,00H,00H

;8 "业"

DB 00H,02H,08H,02H

DB 06H,02H,01H,0E2H

DB 00H,02H,0FFH,0FEH

DB 00H,02H,00H,02H

DB 00H,02H,0FFH,0FEH

DB 00H,22H,00H,0C2H

DB 03H,02H,0CH,06H

DB 00H,02H,00H,00H

END

#include <stdioh>

#include <mathh>

double f(double x)

{

double y;

y=pow(x,2)-3x+2;

return (y);

}

main()

{

double a,b,yl,yr,ym,xl,xr,xm;

printf("请输入a值:");

scanf("%lf",&a);

printf("\n请输入b值:");

scanf("%lf",&b);

yl=f(a);

yr=f(b);

printf("\nyl=%f\n",yl);

printf("\nyr=%f\n",yr);

while(ylyr>0)

{

printf("所求根不在[%f,%f]区间内\n",a,b);

printf("请重新输入a值:");

scanf("%f",&a);

printf("\n请重新输入b值:");

scanf("%f",&b);

yl=f(a);

yr=f(b);

}

xr=a;

xl=b;

while(fabs(xr-xl)>0000001)

{

xm=(xl+xr)/2;

ym=f(xm);

yl=f(xl);

yr=f(xr);

if(ylym<0&&yrym>0)

xr=xm;

else

xl=xm;

}

printf("\n所求根为x=%f\n",xm);

return 0;

}

以上就是关于把汇编源程序变成代码程序的过程是()全部的内容,包括:把汇编源程序变成代码程序的过程是()、跪求程序高手帮忙解读下程序。是一个LED点阵显示的汇编源代码。、求解c++汇编程序中 解线性方程组的 源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10119496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存