《汇编语言》实验九 自己编的实在看不出错在哪。。。
assume cs:code,ds:data,ss:stackdata segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov ax,0d872h
mov es,ax
mov bx,0
mov si,0
mov di,0
mov cx,3
s:
push bx
push cx
mov cx,16
so:
mov al,
mov es:,al
mov al,ds:10h
mov es:1h,al
add bx,2
loop so
add si,0a0h
inc di
pop cx
pop bx
loop s
mov ax,4c00h
int 21h
code ends
end start
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup (0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov ax,0b872h
mov es,ax
f:
mov bx,0
mov si,0
mov di,0
mov cx,3
s:
push bx
push si
push cx
mov cx,16
so:
mov al,
mov ah,ds:10h
mov es:,ax
add si,2
inc bx
loop so
pop cx
pop si
pop bx
add si,0a0h
inc di
loop s
jmp short f
mov ax,4c00h
int 21h
code ends
end start 我来看看。。。呵。我也才学到这里 学习一下啦 才看到第二章,还不大看得懂你写的。 支持楼主... 翻出来我曾经写过的,写的很臭,发上来献丑吧assume CS:code,DS:data,SS:stack
;编程:在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串'welcome to masm!'
;绿字是00001010B 绿底红字是00101100B 白底蓝字是01110001B
;每行是160个字节,就是0A0H个字节
data SEGMENT
db 'welcome to masm!'
db 00000010B,00100100B,01110001B
data ENDS
stack SEGMENT
dw 0
stack ENDS
code SEGMENT
start: MOV AX,data
MOV DS,AX
MOV AX,0B800H
MOV ES,AX
MOV AX,STACK
MOV SS,AX
MOV SP,2
XOR BX,BX
MOV AX,' '
MOV CX,80*25
setdisplay: MOV ES:,AX
ADD BX,2
LOOP setdisplay ;-------->完成清屏
MOV CX,3
MOV BP,10H
XOR DI,DI
strSide: PUSH CX ;外层循环3次,为了写入3行字符串
XOR SI,SI
MOV CX,10H
strIn: XOR BX,BX
MOV AL,
MOV AH,DS:
MOV ES:.720H,AX ;写入的位置,第一行字符串的起始处就是720H这个位置
INC SI ;SI是读取DS段的指针.每次增加1
ADD DI,2 ;DI是写入指针,一次写入一个字,所以每次+2
LOOP strIn ;内层循环16次,这16次的循环就是完成一行字符串的写入
INC BP ;颜色值增加
ADD DI,80H ;DI增加80H就是换一行
POP CX
LOOP strSide
MOV AX,4c00h
INT 21h
code ENDS
END start 不良企鹅 发表于 2013-10-5 21:31 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
你这个错误就在于jmp short f这句,我没细看,但是我觉得这句明显有错,jmp 总是跳过去,没有结束跳转的条件,死循环了
页:
[1]