汇编“生活”(一)——王爽《汇编语言》实验7程序代码
1 assume cs:code ;将数据格式化存放在制定内存中.大作业 2 3 data segment 4 db '1975','1976','1977','1978','1979','1980','1981','1982','1983' 5 db '1984','1985','1986','1987','1988','1989','1990','1991','1992' 6 db '1993','1994','1995' 7 ;以上是表示21年的21个字符串 8 9 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 10 dd 345980,590827,803530,1183000,841000,2759000,3753000,4649000,5937000 11 ;以上是表示21年公司总收入的21个dword型数据 12 13 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 14 dw 11542,14430,15257,17800 15 ;以上是表示21年公司雇佣人数的21个word型数据 16 data ends 17 18 table segment 19 db 21 dup ('year summ ne ?? ') 20 table ends 21 22 stack segment 23 dw 0 24 stack ends 25 26 code segment 27 starts: 28 mov ax,table 29 mov es,ax ;将table段地址给了es 30 mov ax,data 31 mov ds,ax ;将data数据段的地址给了ds 32 mov ax,stack 33 mov ss,ax ;将用于存放cx临时的栈段地址给ss 34 mov sp,10H 35 36 mov bx,0 ;bx和ds搭配 37 mov bp,0 ;bp和es搭配 38 mov di,0 ;di作为table段内偏移地址使用 39 ;格式化前两段(年份和收入) 40 mov cx,2 41 s1: 42 push cx ;压栈 43 mov cx,15H ;设置循环次数21次 44 s2: 45 mov ax,ds:[bx] 46 mov es:[bp+di],ax 47 mov ax,ds:2[bx] 48 mov es:2[bp+di],ax 49 add bp,10H 50 add bx,4 51 loop s2 52 53 add di,5 ;指向table段第二项内容 54 mov bp,0 55 pop cx 56 loop s1 57 58 59 ;格式化第三段(雇员数)代码 60 mov cx,15H 61 mov di,0aH 62 mov bp,0 63 s3: 64 mov ax,ds:[bx] 65 mov es:[bp+di],ax 66 add bp,10H 67 add bx,2 68 loop s3 69 70 71 ;格式化第四段,因为没有数据,所以不用格式化 72 73 mov ax,4c00H 74 int 21H 75 76 77 code ends 78 79 end starts