
建表太麻烦了,我就把中间用到的关键指令给楼主吧(注:我用的是nasm)
mov al,[十六进制值]
mov bx,表首地址
xlat
这三步即可使得al中的结果为对应十六进制数的ASCII码了。
char code s7[10]={};//数组里为 0-9 的七段码数据,这个数组存放在代码段(ROM)里
char show(char m) // m=0,1,9
{ return s7(m); }
main()
{ char h, p ;
while(1){
h=8; //调用时
p=show(h);// 对应(8)的七段码数据提取到 p;
}
}
#include<stdioh>
struct data
{int t;
float m;
};
struct data a[]={{0,294},{10,333},{20,372},{30,414},{40,458},{50,504},{60,552},{70,602},{80,656}};
void main()
{
int n,i;
scanf("%d",&n);
for(i=0;i<9;i++)
if(a[i]t==n)
{printf("%31f\n",a[i]m);
break;
}
}
这个简单~
希望对你能有所帮助。
查表法,就是将你的一些固定的数据存储到程序存储器中,当你的程序中需要这些数据时,movc指令读取这些数据。举例假设你的系统要用数码管显示0-9这10个数字,而假设这10个数字各自的断码(点亮时io口相应的电平)分别为
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
你有两种方法存储这时个数据,一种是在数据区用十个字节存储这些数据(数据常量),但这会占用你的数据存储器空间。另外一种方法就是把这些不变的数放到程序空间中,到需要的时候到程序空间中读取,这便是查表。也就是在程序空间中建立一个表,假设你需要就9这个数值的断码,就去表中查看一下9对应的数据。
以上就是关于用汇编语言编写源程序:用查表方法,将一位十六进制数转换成其ASCII码,并储存。全部的内容,包括:用汇编语言编写源程序:用查表方法,将一位十六进制数转换成其ASCII码,并储存。、试编写一个用查表法查0-9字形段码的子程序,调用子程序前,待查表的数据存放在、C语言查表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)