整体思路:没一次循环将年份,收入,人数复制到table中正确位置的同时,将收入赋值给ax,dx,然后进行除法计算求出人均收入,然后将结果(保存在ax中)复制到table中的正确位置,整个程序只进行一次循环
具体细节
因为整个程序进行一次循环,需考虑好各个寄存器分别保存什么样的值
我的想法是
ds:数据段data的段地址,bx为便宜地址
则年份、收入、人数的偏移地址分别为[bx]+0、[bx]+84、[bx]+168
因为年份、收入均为4个字节,人数为一个字节,分别用di,si来计算每个年份的偏移地址
ss:保存table的段地址
bp:保存每个年份的偏移地址
每年的年份、...
- [hncscwc] 呵呵,确实考虑不周,学习了 06/08 19:10
- [游客] 很好!!不过,建议不要轻易的使用ss段地址,因为这是栈公用的,小心出问题,如果是对普通概念的内存操作 06/08 11:00
- [hncscwc] 谢谢支持,大家一起加油 12/11 23:41
- [游客] 要顶博主! 12/11 19:40
- [musicvs] /************************************** [ hncscw 12/11 16:13
- [hncscwc] 我要能有我们经理一半的水平就非常不错了,呵呵 12/11 12:41
- [yugong] 说的很神呢!自己还没有这样的感觉 12/09 20:27
- [mess] 欢迎回来:-) 11/28 14:00
- [w0922] 刚操作失误····可以看见···· 在dos 下可以看见···· windows 下为 05/12 15:50
- [w0922] 博主运行那看那滴不····程序好像没错 可显示不出来·· 05/12 15:41
[2009-06-06 17:35] 再做实验7
阅读全文 |
评论次数(2) |
浏览次数(772) |
所属类型(程序实验)
[2008-12-18 11:14] 什么是CORBA
什么是CORBA(转载)
公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。简而言之,CORBA 允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。CORBA 1.1 由对象管理组织在 1991 年发布。他定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 1...
公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。简而言之,CORBA 允许应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。CORBA 1.1 由对象管理组织在 1991 年发布。他定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 1...
阅读全文 |
评论次数(0) |
浏览次数(691) |
所属类型(CORBA&TAO)
[2008-11-28 00:20] 回归汇编网扎实学习
很久没来汇编网学习了,现在会经常抽空来学习学习的~~~~~~~~哈哈
不知不觉,毕业后独自出来闯荡也有四个多月了,想想在这四个月里,自己用ACE和C++按公司需求编写了TFTP、SYSLOG协议,后面又边学边练用JAVA写了个小项目,也接触了很多自己没有接触过的技术,比如ACE网络编程,SVG,XML等,真正理解了为什么需要对操作系统,编译原理,汇编等进行深入的学习,我们经理这样对我们说:“我写代码的时候,看到的不是这个变量的值是多少,这行代码是给哪个变量赋值,我看到的是底层的堆,栈,指针是怎么移动的,发生了怎样的变化,所以我写代码的时候,会联想到汇编,操作系统,编译原理等知识...”。我觉...
不知不觉,毕业后独自出来闯荡也有四个多月了,想想在这四个月里,自己用ACE和C++按公司需求编写了TFTP、SYSLOG协议,后面又边学边练用JAVA写了个小项目,也接触了很多自己没有接触过的技术,比如ACE网络编程,SVG,XML等,真正理解了为什么需要对操作系统,编译原理,汇编等进行深入的学习,我们经理这样对我们说:“我写代码的时候,看到的不是这个变量的值是多少,这行代码是给哪个变量赋值,我看到的是底层的堆,栈,指针是怎么移动的,发生了怎样的变化,所以我写代码的时候,会联想到汇编,操作系统,编译原理等知识...”。我觉...
阅读全文 |
评论次数(6) |
浏览次数(1018) |
所属类型(随想)
[2008-05-12 09:07] 实验14
本人觉得这个程序写得比较糟糕,不能用循环指令来控制,有很多重复得代码,还请指教好的方法
assume cs:code
code segment
start: mov al,9 ;处理显示年
out 70H,al
in al,71H
mov ah,al
mov cl,4
shr ah,cl
and al,00001111B
add ah,30H
add al,30H
mov bx,0B800H
mov es,bx
mov byte ptr es:[160*12+24*2],ah
mov byte ptr es:[160...
assume cs:code
code segment
start: mov al,9 ;处理显示年
out 70H,al
in al,71H
mov ah,al
mov cl,4
shr ah,cl
and al,00001111B
add ah,30H
add al,30H
mov bx,0B800H
mov es,bx
mov byte ptr es:[160*12+24*2],ah
mov byte ptr es:[160...
阅读全文 |
评论次数(4) |
浏览次数(977) |
所属类型(程序实验)
[2008-05-12 09:03] 实验13(3)
关键:各个字符串和行数的地址
assume cs:code
code segment
s1:db 'Good,better,best,','$'
s2:db 'Never let it rest,','$'
s3:db 'Till good is better,','$'
s4:db 'And better best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row:db 2,4,6,8
start: mov ax,cs
mov ds,ax
mov bx,offset s ;ds:(bx)...
assume cs:code
code segment
s1:db 'Good,better,best,','$'
s2:db 'Never let it rest,','$'
s3:db 'Till good is better,','$'
s4:db 'And better best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row:db 2,4,6,8
start: mov ax,cs
mov ds,ax
mov bx,offset s ;ds:(bx)...
阅读全文 |
评论次数(1) |
浏览次数(792) |
所属类型(程序实验)
[2008-05-12 08:55] 实验13(2)
本题考查中断程序处理循环的控制
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset lp ;ds:si中断程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di存储中断程序的地址
cld
rep movsb ;复制中断程序
mov ax,0
mov es,ax
mov word ptr es:[7CH*4+0],200H
mov word ptr es:[7CH*4+2],0 ;设置中断向量表
...
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset lp ;ds:si中断程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di存储中断程序的地址
cld
rep movsb ;复制中断程序
mov ax,0
mov es,ax
mov word ptr es:[7CH*4+0],200H
mov word ptr es:[7CH*4+2],0 ;设置中断向量表
...
阅读全文 |
评论次数(1) |
浏览次数(696) |
所属类型(程序实验)
[2008-05-12 08:51] 实验13(1)
和检测点13.1还有书本上的例子基本类似,熟悉指令iret,int
assume cs:code
data segment
db "Welcome to masm!",0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset show
mov ax,0
mov es,ax
mov di,200H
mov cx,offset showend-offset show
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:...
assume cs:code
data segment
db "Welcome to masm!",0
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset show
mov ax,0
mov es,ax
mov di,200H
mov cx,offset showend-offset show
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:...
阅读全文 |
评论次数(1) |
浏览次数(788) |
所属类型(程序实验)
[2008-05-12 08:48] 检测点13.1
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset showstart ;ds:si中断程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di将要复制的目的地址
mov cx,offset showend-offset showstart
cld
rep movsb ;开始复制
mov ax,0
mov es,...
data segment
db 'conversation',0
data ends
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset showstart ;ds:si中断程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di将要复制的目的地址
mov cx,offset showend-offset showstart
cld
rep movsb ;开始复制
mov ax,0
mov es,...
阅读全文 |
评论次数(3) |
浏览次数(772) |
所属类型(汇编作业)
[2008-05-06 09:06] 试验12
思路:
(1)将中断处理程序复制到正确的位置(复制到从0000:0200开始处)
(2)设置中断向量表项中的值,使它指向中断处理程序的地址
(3)编写中断处理程序显示字符串"divide error"
源程序:
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset d0 ;ds:si源程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di中断处理程序的地址
mov cx,offset d0end-offset d0;中断程序的长度
...
(1)将中断处理程序复制到正确的位置(复制到从0000:0200开始处)
(2)设置中断向量表项中的值,使它指向中断处理程序的地址
(3)编写中断处理程序显示字符串"divide error"
源程序:
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset d0 ;ds:si源程序地址
mov ax,0
mov es,ax
mov di,200H ;es:di中断处理程序的地址
mov cx,offset d0end-offset d0;中断程序的长度
...
阅读全文 |
评论次数(4) |
浏览次数(972) |
所属类型(程序实验)
[2008-05-03 16:20] 实验11
letterc子程序流程:
(1)将ds:[si]中值赋给cl,判断是否为字符串的末尾(以0结束),利用jcxz跳转
(2)判断字符是否是小写字母,小写字母的范围:[97,122],用cmp命令设置标志寄存器的值,用jb,ja指令
跳转,即小于97跳转到下一字符处,大于122也跳转到下一个字符处
(3)若字符确实为小写字符,即对字符进行转变,字符的值保存在cl中,又小写字母与大写字母相差32,故
对cl执行减32操作,然后再保存再ds:[si]中即可
assume cs:codesg
datasg segment
db "Beginner's All-purp...
(1)将ds:[si]中值赋给cl,判断是否为字符串的末尾(以0结束),利用jcxz跳转
(2)判断字符是否是小写字母,小写字母的范围:[97,122],用cmp命令设置标志寄存器的值,用jb,ja指令
跳转,即小于97跳转到下一字符处,大于122也跳转到下一个字符处
(3)若字符确实为小写字符,即对字符进行转变,字符的值保存在cl中,又小写字母与大写字母相差32,故
对cl执行减32操作,然后再保存再ds:[si]中即可
assume cs:codesg
datasg segment
db "Beginner's All-purp...
阅读全文 |
评论次数(1) |
浏览次数(695) |
所属类型(程序实验)
『 查看更多文章 』