
mssql 的话
select aname 表名,bname 列名
from sysobjects a,syscolumns b
where aid=bid and bname=关键字 and atype='U'
这段代码的关键指令其实就是片选指令。
MOV DPTR,# ;把外部接口的地址码传给指针DPTR,地址码通过外部译码器转
;换成片选信号
MOVX @DPTR,A ;把累加器A的值通过数据总线传递给DPTR指向的外部接口,在
;这段程序中即实现段选和位选功能。
你的这段程序只能显示数字“0”,下面详细给你解读这段程序:
ORG 0 ;程序代码段从地址0开始
MOV R0,#0 ;这句代码是控制你所要显示的数字的,它其实是TAB表中的偏移
;量,现在偏移量是0,即显示的是3FH,共阴数码管段选码表示数
;字“0”
LOOP:MOV DPTR,#8002H ;位码地址为8002H,指针指向位选的外部接口,选定一
;个数码管
MOV A,#1
MOVX @DPTR,A ;以上两句向位选接口传动数据1,其实是把第一个数码
;管置高电平,表示选通。
MOV A,R0 ;A=RO=0
MOV DPTR,#TAB ;DPTR =TAB表首地址
MOVC A,@A+DPTR ;把TAB+0地址上的数据传送给A,@TAB+N表示TAB表中第
;N+1个数据,在这里是A=3fh
MOV DPTR,#8004H ;段码地址为8004H,指针指向段选的外部接口
MOVX @DPTR,A ;把3fh传送给段选接口,实现显示“0”的功能
LJMP LOOP ;跳到LOOP处循环执行。
TAB:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
这样解释,你应该会明白的。 o(∩_∩)o
你的补充问题也回答正确。
// 希望能达到你的要求
ORG 0000H
LJMP MAIN
ORG 0003H
ORG 0030H
MAIN:
MOV SP,#30H ; 设置堆栈
MOV R2,#41H ;A的ASCII码
MOV R3,#50H ;循环50次
MOV DPTR,#2000H ;表首地址
MOV A,#00H
GOTO:
PUSH ACC
MOVC A,@A+DPTR
XRL A,R2
JZ CONTROL ;如果是41H 则跳出保存
DJNZ R3,GOTO2 ;是否寻到了50H个地址 寻到了则退出(这时无有效的结果保存)_
LJMP EXIT
GOTO2:
POP ACC
INC A
AJMP GOTO
CONTROL:
POP ACC ;d出A 即低位地址
MOV R1,A
MOV DPTR,#2051H
MOVX @DPTR,A ; 存放低位地址
INC DPTR
MOV A,#20H
MOVX @DPTR,A ; 存放高位地址
EXIT:
END
#include "stdioh"
void main()
{
float a[10] = {294,333,372,414,458,504,552,602,656};
int b,c;
printf("请输入温度: ");
scanf("%d",&b);
if(b%10!=0||b<0||b>80)
{
printf("输入错误");
}
else
{
c=b/10;
printf("温度是: %1f",a[c]);
}
}
单片机查表程序
ORG 0030H
……
MOV A, #03H ; 如 1
MOVC A, @A+PC ; A = @A+PC ( 如 原来A=3 , PC 为下一条指令的地址)
RET ; A = ( 1 为 01H , 2 为 20H , 3 为 0DAH , 4 为 0EDH
SE: BD 01H, 20H, 0DAH, 0EDH
……
MOV DPTR, #SE ; 如 2
MOV A, #02H ;
MOVC A, @A+DPTR ; A = @DPTR ( 如 原来A=3 ,DPTR 为数据表 SE 的首地址)
RET ; A = ( 0 为 01H , 1 为 20H , 2 为 0DAH , 3 为 0EDH
SE: BD 01H, 20H, 0DAH, 0EDH
以上就是关于sql多表关键字查询全部的内容,包括:sql多表关键字查询、单片机查表显示程序的一个问题!~~~、单片机查表程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)