博文
汇编写的(交集,并集,差集)(2006-12-11 15:43:00)
摘要:最近忙这考试,英语六级很少写帖了,今天有兴趣就写了这个程序,希望大家给点评论,以便自己以后改进!!!
dseg segmentstr1 db 'abcdefgklmn','$'str2 db 'abcdhijk','$'jiao db 20 dup (?)bing db 30 dup (?)cha db 20 dup (?)dseg endssseg segment stacksseg endscseg segment assume cs:cseg,ds:dseg,ss:sseg start: mov ax,dseg mov ds,ax lea ax,str1 push ax lea ax,str2 push ax lea ax,jiao push ax call jiao_func
lea ax,str1 push ax lea ax,str2 push ax&nbs......
对于网上日历算法的看法(2006-11-29 17:01:00)
摘要:我今天编写的是用汇编编写万年历,可是发现一个小问题
在网上搜到的1个算法:
1:—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式。即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。)
我经过演此算法只有1,11等几个月是正确的
例如:2006年5月1日为例:
m=5,y=06,c=20(21世纪),d=1
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 w=6+1+5-40+15+1-1=3
而日历上5月1日为星期1
由此可见并不是很准确啊!!!!!!!!!!!!!!!!!!!
有错误的地方请大家给与指点和批评
......
编写汇编程序真是麻烦(2006-11-29 13:46:00)
摘要:今天我编写日历程序(汇编),就是因为一个ah,写成了al,导致我查找错误很长时间真是很郁闷啊!......
汇编(2006-11-23 17:29:00)
摘要:从键盘读入一个字符串(<80),统计字母,数字及其他字符的个数
datasegment segment
array db 80 db ? db 80 dup(?)datacount db 0wordcount db 0othercount db 0out1 db 'datacount:','$'out2 db 'wordcount:','$'out3 db 'othercount:','$'datasegment ends
codesegment segment assume ds:datasegment,cs:codesegment start: mov ax,datasegment mov ds,ax lea dx,array mov ah,0ah ......
汇编程序设计(2006-11-23 17:27:00)
摘要:从键盘输入一个八位二进制数,显示其对应的无符号与带符号十进制
程序:
datasegment segment
array db 8 dup(0)ssign db 'sign data','$'uunsign db 'unsign data','$'datasegment ends
codesegment segment assume ds:datasegment,cs:codesegment start: mov ax,datasegment mov ds,ax mov si,0 mov cx,8 rep: mov ah,1 int 21h sub al,30h mov array[si],al inc si loop rep mov di,7 mov bl,1 mov ......
汇编子程序设计(2006-11-16 21:39:00)
摘要:要求:
已知某密码由英文字母A、B、C……Z组成且以ASCII码形式存放在以CIPHER为首地址的存储区中,试统计各字母在此密码中出现的次数并依次存入以CHAR为首地址的26个字节中,最后将字母出现的次数以十六进制形式显示出来(设出现的次数≤255),显示格式为:
A XXH
B XXH
Z XXH
要求:
将“8位二进制数转换成十六进制数并显示出来”的功能用子程序完成。
program:
jidseg segmentchipher db 'AASDFGHJKLMNBVCXZQWERTYUIOPJSDLFSDLFSDJFOFWOOEWJWTRETJGFVNLFLFJLWUIEWWFSFSFKF'len = $-chipherchar db 26 dup(0)dseg endscseg segment assume cs:cseg ,ds:dsegstart: mov ax,dseg mov ds,ax mov si,0next: mov bl,chipher[si] mov bh,0 inc si cmp si,len ja count sub bl,'A' add char[bx],1 ......
汇编子程序设计(2006-11-14 22:58:00)
摘要:
实验七 子程序设计(1)
(一)实验目的
1、掌握子程序的设计方法和调用方式
2、深刻认识堆栈在子程序设计中所起的作用
3、掌握子程序调试的技巧。
(二)实验设备
同实验二
(三)实验内容和要求
实验内容:
内存中有一字节型无符号数缓冲区Data,长度为100。将Data缓冲区显示到屏幕上,分别用二进制,十进制和十六进制。要求:
1.编写子程序将一个字节数用二进制进行显示,参数用内存数传递;
2.编写子程序将一个字节数用十进制进行显示,参数用寄存器数传递;
3.编写子程序将一个字节数用十六进制进行显示,参数用堆栈传递;
(四)预习要求
同实验二
(五)实验步骤
同实验二
(六)实验结果分析
1、理解3种参数传递方式各有什么特点
2、绘制一般子程序的结构。
(七)编程提示
(a) 二进制显示可采用移位并判断该位的方式进行。
(b) 十进制数采用除以10取商的方式。
(c) 十六进制数可利用二进制转换位十六进制的方法进行。
(d) 注意去掉最高位的“0”。
目前只做了1和2
DSEG segmentdata db 101,1,2,3,4,5,6,7,8,9,90 dup(5)msg db ',','$'msg1 db 'please choose operation','$'msg2 db '0:bit-data; 1:dec-data; 2:hex-data','$'addrtbl dw bdata,ddata,hdatadseg ends
cseg segment assume cs:cseg,ds:dseg start: mov ax,dseg mov d......
杨辉三角(2006-11-13 13:19:00)
摘要:#include<iostream>#include<iomanip>using namespace std;class queue{public: queue(){rear=front=0;} bool empty(){return rear==front;} bool get_yanghuisanjiao(int i); private: int front; int rear; int data[20];};int main(){ queue q; int y; cout<<"please put in how many line in yanghuisanjiao"<<endl; cin>>y; q.get_yanghuisanjiao(y); return 0;}bool queue::get_yanghuisanjiao(int i){ data[0]=1;data[1]=1;//先将第一,第二位置的元素输入; int h=i; for(int j=1;j<=i;j++) { for(int n=rear;n>=1;n--) { data[n]=data[n]+data[n-1];//实现元素的算法; } data[rear++]=1; cout<<setw(h--); for(int x=0;x<rear;x++)//输出元素; cout<<" "<<data[x]; cout<<endl; } return true;}
......
合并链表(数据结构)(2006-11-13 13:18:00)
摘要:#include"link_list.h"int main(){ int i; link_list L1; link_list L2; cout<<"now put in the data in the first list L1"<<endl; L1.get_data_in(); cout<<"now put in the data in the second list L2"<<endl; L2.get_data_in(); cout<<"if you want to printf the combination_increase list please put '1'" <<endl; cout<<"if you want to printf the combination_descending list please put '0'" <<endl; cin>>i; if(i==1) { L1.combination_increase(&L2); L1.get_data_out(); cout<<"if you want to printf the combination_descending list please put '0'" <<endl; int j;cin>>j; if(j==0) { L1.combination_descending(&L2); L1.get_data_out(); } } if(i==0) { L1.combination_descending(&L2); L1.get_data_out(); cout<<......
