关于 int 21h 的一些用法
int 21h 函数的使用参考dos中断INT+21H大全 : http://wenku.baidu.com/view/9fd3b25c3b3567ec102d8a9c.html
or http://course.cug.edu.cn/21cn/%CE%A2%D0%CD%BC%C6%CB%E3%BB%FA%BC%BC%CA%F5/content/masm/chapter4/4-4/4-4-3.htm
or http://wenku.baidu.com/view/fed6e84ac850ad02de80417d.html
or http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=5618&kindId=6451&postId=10255
或者百度下 int 21h 的使用
------------------------
assume cs:code
data segment
db 0dh,0ah
db 10h dup(20h)
db 24h
data ends
code segment
start:mov ax,data
mov ds,ax
xor cx,cx
mov bx,2
getchar:mov ax,100h
int 21h
mov ,al
inc bx
inc cx
cmp cx,10h
jgeshow
cmp al,24h
jnz getchar
show: xor dx,dx
mov ax,900h
int 21h
mov ax,4c00h
int 21h
code ends
end start
---------------------------------
C:\masm5>tt
1111111111111111
1111111111111111
C:\masm5>tt
Hello,Nisy$
Hello,Nisy FBI在此站位,学习中 兔小样: 您的贴子很精彩,希望能再次分享!威望 + 10 飘云币 + 100 枚 好大方 {:3_159:} assume cs:code
data segment
Nisy db 'Hello,Nisy!$'
Komany db 'Hello,komany!$'
Chinadb 'Hello,China!$'
ASM db 'Hello,ASM!$'
data ends
code segment
start:
mov ax,data
mov ds,ax
call fun_1
mov ax,4c00h
int 21h
fun_1:push cx
push si
push dx
mov cx,11
mov si,0
s:
mov bx,offset Nisy
mov al,
and al,0dfh
mov ,al
inc si
loop s
mov ax,0900h
mov dx,offset Nisy
int 21h
pop dx
pop si
pop cx
retn
code ends
end start 汇编已经跟不上大家的进度了,争取放假期间自己补上。
心里老是有种愧疚感,不知道是对老师还是对自己。 汇编已经跟不上大家的进度了,争取放假期间自己补上。
心里老是有种愧疚感,不知道是对老师还是对自己。
winmvp 发表于 2010-12-21 08:19 https://www.chinapyg.com/images/common/back.gif
自己多看看王爽的汇编,肯定能跟上的 assume cs:code ,ds:data,ss:stack
data segment
a db 'Hello,Nisy!',0
b db 'Hello,Your Name!',0
c db 'Hello,China!',0
d db 'Hello,ASM!',0
data ends
stack segment
dw 30h dup(0)
stack ends
code segment
_enter :
movah,02h
movdl,0dh
int21h
movdl,0ah
int21h
ret
_printf: mov ax,0900h
mov dx,si
int 21h
ret
_printf_big: push bp
mov bp,sp
mov si,
push si
s1: cmp byte ptr ,0
je s
cmp byte ptr ,21h
jes2
cmp byte ptr ,2ch
je s2
and byte ptr ,0dfh
s2: inc si
jmps1
s: mov byte ptr,24h
pop si
call _printf
pop bp
ret
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,30h
mov ax,offset a
push ax
call _printf_big
pop ax
call _enter
mov ax,offset b
push ax
call _printf_big
pop ax
call _enter
mov ax,offset c
push ax
call _printf_big
pop ax
call _enter
mov ax,offset d
push ax
call _printf_big
pop ax
call _enter
mov ax,4c00h
int21h
code ends
end start _printf_big: push bp
mov bp,sp
mov si,
搞不懂这样做有何意义,难道直接使用ax传参不方便吗?为什么绕这么大的圈子?? 回复 8# Finder
为了函数能重用!所以都加上的!
或是下次这个是给其它函数调的时候准备的! 回复 9# 努力ing
用一个ax作为参数传给子程序不是更具有通用行吗?
mov ax,4c00h
int 21h
难道它不通用吗?
页:
[1]
2