woshixy1 发表于 2022-2-11 02:44:49

关于第八章 实验7

小伙伴们你们好

我做这个实验得时候 弄了好久。。。。好几个小时才完成


还是看了小甲鱼得 视频 如果没有视频得画 我想我根本弄不出来


感谢小甲鱼


这里分享几个 我得错误点 。。。希望大家不要像我一样掉在坑里

下面是我得代码


assume cs:codesg

data segment
    db '1975','1976','1977','1978','1979','1980','1981','1982','1983'             首先我在这里出错了, 就是。。db 后跟着得元素之间 需要 逗号隔开。。我开始得时候没写。
    db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
    db '1993','1994','1995'
   
    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
    dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

    dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
    dw 11452,14430,15257,17800
data ends

table segment
    db 21 dup ('year summ ne ?? ')
table ends

stacksg segment
    dw 0,0,0,0,0,0,0,0
stacksg ends

codesg segment

start:mov ax,data
      mov ds,ax
      mov ax,table
      mov es,ax
      mov ax,stacksg
      mov ss,ax
      mov sp,10H
      
      mov bx,0
      mov si,0
      mov di,0
      mov cx,21
   s0:push cx
      
      mov cx,4
         s1:mov al,
            mov es:,al
            inc bx
            inc di
            loop s1
      
      inc di
      
      mov ax,50h
      push ax
      mov dx,52h
      mov es:,ax
      add di,2
      mov es:,dx
      add di,2
      inc di
      
      mov ax,0a3H
      mov es:,ax
      add di,2
      inc di
      
      
      pop ax
      div word ptr 0a8h
      mov es:,ax
      add si,2
      add di,2
      inc di
      pop cx
      loop s0
      
      mov ax,4c00h
      int 21h

codesg ends
end start






总结
                我用得方法 挺笨得 di 慢慢累加 为了 格式好看有的地方 我还是用了 inc其实可以用 add di ,3但是方便大家看把
                中间有一点 我push了 ax 是因为 我懒得改 寄存器了。。 因为我忘了后面要做除法了。。。中间把ax用了。。
                我有个想法 想着 一次性 在 栈段把 数据写好 16个字节 在全部 loop 灌入到 table 里面 这应该是一个很有趣得事
                因为才学了几天 好多知识 还很不熟练 在写这个程序得时候 我还是从新翻了笔记。。我觉得除法这块有点绕
                几个寄存器也搞得我有点晕头转向
                bx ds di 。。。
               

然后 再次感谢小甲鱼










发表于 2022-5-15 00:34:25

cs:ip 代码段寻址
ds:[内存] 数据段寻址
ss:sp 堆栈段寻址,bp用于在堆栈中定位
其它普通的寄存器ax,bx之类的用作临时保存数据
基本上就是这样吧。。
页: [1]
查看完整版本: 关于第八章 实验7