1029194022 发表于 2022-7-19 09:45:09

求救

assume cs:code,ss:stack,ds:data

data segment
db 'welcome to masm!'
db 02h,24h,71h
;0CAh红底高亮闪烁绿色
;绿02h 绿底红24h 白底蓝 71h
;0B800h,6DFh
data ends

stack segment
      dw 800h dup(0)               
stack ends

code segment
start: mov ax,data
      mov ds,ax
      mov ax,0b800h
      mov es,ax
      mov di,726h   ;1760+70

      mov bx,0
      mov ah,;高位放属性

      mov cx,3
    s1:
      push cx
      movcx,16
    s0:
      mov al,
      mov es:,ax
      inc bx
      add di,2
      loop s0
      mov bx,0
      add di,128
      pop cx
      loop s1
      mov bx,12;去掉这个程序就卡死了,不知道为什么

int 21h
code ends
end start



这个我运行后能出效果,但是报错run-time error R6001 null pointer assignment
还有,我最后不给bx值程序就卡死了,这个是为什么啊

jackz007 发表于 2022-7-19 13:06:04

本帖最后由 jackz007 于 2022-7-19 16:00 编辑

assume cs:code , ds:data

data segment para public 'data'
    textdb 'welcome to masm!'
    attrdb 02h , 24h , 71h
data ends

stack segment para stack 'stack'      ; 堆栈这样定义,编译程序可以正常识别
      dw 800h dup(00)               
stack ends

code segment para public 'code'
start:mov ax,data
      mov ds,ax
      mov ax,0b800h
      mov es,ax
      mov bx,offset attr
      mov cx,3
      mov si,offset text
      mov di,726h
      cld      
s1:   push cx
      push si
      push di
      mov ah,
      mov cx,16
s2:   lodsb
      stosw
      loop s2
      pop di
      pop si
      pop cx
      add di,160
      inc bx
      loop s1
      xor ax,ax
      int 16h
      mov ax,4c00h
      int 21h
code ends
end start

1029194022 发表于 2022-7-20 09:57:21

jackz007 发表于 2022-7-19 13:06


哦哦,这样啊,谢谢{:5_108:}
页: [1]
查看完整版本: 求救