;;旋轉的文字[彙編]
code segment
.386p
org 100h
assume cs:code,ds:code,es:code
start:
push cs
pop ds
push ds
pop es
call csh
mov ax,13h
int 10h
mov ax,1300h
mov bx,000eh ;bh=頁碼 bl=屬性(若al=00h或01h)
mov cx,cnt ;0014h ;cx=顯示字串長度
mov dx,100h ;010ah ;dh,dl=起始行,列
mov bp,offset hello ;es:bp=顯示字串的位址
int 10h
mov ax,0a000h
mov es,ax
push es
push ds
pop es
pop ds
mov si,320*6
mov di,2000h
mov cx,320*12
rep movsb
push ds
push es
pop ds
pop es
call clear
mov bx,1000h
again:
mov si,2000h
mov di,[bx]
mov cx,320*12
next: lodsb
test al,al
jz kk1
mov al,color
kk1: stosb
loop next
call delay
inc bx
inc bx
cmp bx,1000h+360*2
jb ok
mov bx,1000h
inc color
ok:mov ah,1
int 16h
jz again
mov ah,0
int 16h
cmp ah,1
jnz again
mov ax,3
int 10h
mov ah,4ch
int 21h
csh:
cldmov di,1000h
mov cx,360
@csh:
inc rot
fldpi
fidiv rrr
fimul rot
fsincos
fimul rx
fistp xx
fimul ry
fistp yy
add xx, 100 ;120
add yy, 90 ;100
mov ax, yy
imul ax,320
add ax,xx
stosw
loop @csh
ret
;**********=
color db 2
rrr dw 180
yy dw 100
xx dw 160
rx dw 80 ;120
ry dw 60 ;90
rot dw ?
;------------
delay:
push dx
push ax
t_a: mov dx,3dah
in al, dx
test al, 8
jnz t_a
t_b: in al, dx
test al, 8
jz t_b
pop ax
pop dx
ret
clear:
xor di,di
mov ax,di
mov cx,320*200
rep stosb
rethello db ' hello world! '
cnt equ $- hello
code ends
end start
80x86彙編常用指令
一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...
80X86彙編 mul 乘法指令
使用 mul 做乘法的時候,注意以下兩點 格式如下 mul reg mul 記憶體單元記憶體單元可以用不同的定址方式給出,比如 mul byte ptr ds 0 含義 ax al ds 16 0 mul word ptr bx si 8 含義 ax ax ds 16 bx si 8 的結果的低 1...
80x86組合語言 分類統計
組合語言的程式設計題!急 有100個學生成績,存放在以data為首址的位元組儲存單元中。試統計其中90 含90 以上的人數,60 90 含60 之間的人數,60以下的人數,分別存入max,middle,min三個變數中。15 分鐘前 做而論道 十七級 最快回答 assume ds qq,cs cc ...