woshixy1 发表于 2022-2-12 02:25:08

关于 第9章 实验9

先感谢 小甲鱼
谢谢小甲鱼无私的分享 谢谢

着我的代码

assume cs:codesg
data segment
    db 'welcome to masm!'
    db 2H,24H,71H
data 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,stacksg
      mov ss,ax
      mov sp,10H
      mov di,0
      mov ax,0b800H
      mov es,ax
      mov si,0
      mov cx,3
      
   s0:push cx                      这里我用了一个嵌套循环 ,3次循环是吧 往显示 内存里面 写入数据 这个动作 重复了 3次
      push si    这里我意识到 里面的循环 里 显示内存的偏移地址会一直增加 所以要先保存一下现在的状态
      mov bx,0 这里bx归零 也就是 每次都是从头读 welcome to masm!
      mov cx,10H
      
         s1:mov al,                这里循环16次 是把 welcome to masm! 循环 配上 显示属性 装到 显示内存里面
            mov ah,
            mov es:,ax
            add si,2
            inc bx
            loop s1
      
      pop si这里把没有进入下层 循环 的 显存偏移地址 取出来 方便下面递增用
      pop cx
      inc di
      add si,0a0h
      loop s0
               
      mov ax,4c00h
      int 21h

codesg ends
end start




再次感谢小甲鱼 无私的分享

还有我用的模拟器 搞完之后 第一行总是不显示 我以为是 我编写的程序有问题

从新写了一个 开头 显存就定义到了 下一行开始

后来发现 重启一下模拟器 再运行 .exe文件就可以了

。。。。。


页: [1]
查看完整版本: 关于 第9章 实验9