;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大小字母
;参数:ds:si指向字符串首地址
letterc:push si
let:cmp byte ptr [si],0
je s0 ;如果到了字符串结尾则跳到s0处。
cmp byte ptr [si],97
jb s ;如果小于97则跳至S
cmp byte ptr [si],122
ja s ;如果大于122则跳至S
and byte ptr [si],11011111b;在97~122之间,则将CX转化为大写字母。
s:...
[2013-03-18 00:29] 将以0结尾的字符串中的小写字母转变成大小字母
阅读全文 |
评论次数(0) |
浏览次数(226) |
所属类型(子程序)
[2013-03-17 09:58] 两个128位数据进行相加
;名称: add128
;功能: 两个128位数据进行相加
;参数: ds:si指向存储第一个数的内存空间,因数据为128位,所以需要8个单元,
; 由低地址单元到高地址单元依次存放128位数据由低到高的各个字。运算结果存储在
; 第一数的存储空间中。
; ds:di指向存储第二个数的内存空间。
add128: push ax
push cx
push si
push di
sub ax,ax;将CF设置为0
mov cx,8
s: mov ax,[si]
adc ax,[di]
mov...
;功能: 两个128位数据进行相加
;参数: ds:si指向存储第一个数的内存空间,因数据为128位,所以需要8个单元,
; 由低地址单元到高地址单元依次存放128位数据由低到高的各个字。运算结果存储在
; 第一数的存储空间中。
; ds:di指向存储第二个数的内存空间。
add128: push ax
push cx
push si
push di
sub ax,ax;将CF设置为0
mov cx,8
s: mov ax,[si]
adc ax,[di]
mov...
阅读全文 |
评论次数(0) |
浏览次数(240) |
所属类型(子程序)
[2013-03-14 15:22] 将dword型数据转变为表示十进制数的字符串
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称:dtoc(需调用divdw子程序,来解决除法溢出问题。)
;功能:将dword型数据转变为表示十进制数的字符串,字符串以0为结尾符。
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; ds:si指向字符串的首地址
;返回:无
dtoc: push ax
push bx
push cx
push dx
push di
push si
mov di...
;名称:dtoc(需调用divdw子程序,来解决除法溢出问题。)
;功能:将dword型数据转变为表示十进制数的字符串,字符串以0为结尾符。
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; ds:si指向字符串的首地址
;返回:无
dtoc: push ax
push bx
push cx
push dx
push di
push si
mov di...
阅读全文 |
评论次数(0) |
浏览次数(230) |
所属类型(子程序)
[2013-03-13 22:09] 将word型数据转变为表示十进制数的字符串
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
dtoc: push si
push bx
push cx
push dx
mov bx,0ah ;用作除数,相当于十进制的10.
mov dx,0h ;用作结尾符0
push dx ;将结尾符0入栈,最后目的是调换字符串顺序。...
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符。
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
dtoc: push si
push bx
push cx
push dx
mov bx,0ah ;用作除数,相当于十进制的10.
mov dx,0h ;用作结尾符0
push dx ;将结尾符0入栈,最后目的是调换字符串顺序。...
阅读全文 |
评论次数(0) |
浏览次数(314) |
所属类型(子程序)
[2013-03-13 11:10] 进行不会产生溢出的除法运算divdw
;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
;参数:(ax) = dword型数据的低16位
; (dx) = dword型数据的高16位
; (cx) = 除数
;返回:(dx) = 结果的高16位,(ax) = 结果的低16位
; (cx) = 余数
;应用举例:计算1000000/10(F4240H/0AH)
MOV AX,4240H
MOV DX,000FH
MOV CX,0AH
CALL DIVDW
;结果:(DX) = 0001H,(AX)=86A0H...
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
;参数:(ax) = dword型数据的低16位
; (dx) = dword型数据的高16位
; (cx) = 除数
;返回:(dx) = 结果的高16位,(ax) = 结果的低16位
; (cx) = 余数
;应用举例:计算1000000/10(F4240H/0AH)
MOV AX,4240H
MOV DX,000FH
MOV CX,0AH
CALL DIVDW
;结果:(DX) = 0001H,(AX)=86A0H...
阅读全文 |
评论次数(0) |
浏览次数(203) |
所属类型(子程序)
[2013-03-13 09:05] 在指定的位置,用指定的颜色,显示一个用0结束的字符串
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数:(dh) = 行号(取值范围0~24),(dl) = 列号(取值范围0~79),
; (cl)= 颜色,ds:si指向字符串的首地址。
;返回:无。
show_str: push ax
push bx
push cx
push dx
push si
push di
push es
mov ax,0b800h
mov es,ax
;一行中,,每个字符在显示缓冲区占两个字节,低位存储ASC...
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数:(dh) = 行号(取值范围0~24),(dl) = 列号(取值范围0~79),
; (cl)= 颜色,ds:si指向字符串的首地址。
;返回:无。
show_str: push ax
push bx
push cx
push dx
push si
push di
push es
mov ax,0b800h
mov es,ax
;一行中,,每个字符在显示缓冲区占两个字节,低位存储ASC...
阅读全文 |
评论次数(0) |
浏览次数(222) |
所属类型(子程序)
[2013-03-12 19:43] 将一个全是字母,以0结尾的字符串,转化为大写
;说明:将一个全是字母,以0结尾的字符串,转化为大写
;参数:ds:si指向字符串的首地址
;结果:没有返回值
capital:mov cl,[si]
mov ch,0
jcxz ok ;如果(CX)=0,结束;如果不是0,处理
and byte ptr [si],11011111b ;将ds:si所指单元中的字母转化为大写
inc si
jmp short capital ;ds:si指向下一个单元
ok: ret...
;参数:ds:si指向字符串的首地址
;结果:没有返回值
capital:mov cl,[si]
mov ch,0
jcxz ok ;如果(CX)=0,结束;如果不是0,处理
and byte ptr [si],11011111b ;将ds:si所指单元中的字母转化为大写
inc si
jmp short capital ;ds:si指向下一个单元
ok: ret...
阅读全文 |
评论次数(0) |
浏览次数(205) |
所属类型(子程序)
页码数(1):
1