


- [starrynight] 最好把除法子程序提取出来 然后把实验主程序也加上,贴过来。要不大家都没法给你验证。呵呵 06/27 10:32
- [starrynight] 恩,挺好 最好能把验证程序一起贴出来 06/27 09:59
- [duckgaga] 不错。很简洁,继续加油! 06/23 23:32
- [mousecarrot] 在编辑器中注释都是对齐的,发到帖子里就不齐了,。。。 06/23 16:09
- [mousecarrot] 嘿嘿 06/23 15:59
- [mess] o(∩_∩)o... 06/23 13:52
- [mess] 不错~ 06/22 16:32
- [mess] 看博主写的注释这么清楚,程序就应该正确了;0 写个测试程序,抓个图就更清晰了~ 06/22 16:30
- [younggay] 程序正确! 06/18 22:38
- [younggay] OK! 继续前进... 06/18 14:44
[2008-06-23 22:29] 实验11 字母转化子程序
已通过使用前面做的show_str子程序将转化结果输出:
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
letterc:
push cx
push si ;保存寄存器状态
lc:
mov cl,[si]
jcxz endlc ;遇0则退出循环
cmp cl,61h
jb next ;小于'a'的字符不处理
cmp cl,7ah
ja next ;大于'z'的字符不处理
and cl,11011111b
mov [si],...
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
letterc:
push cx
push si ;保存寄存器状态
lc:
mov cl,[si]
jcxz endlc ;遇0则退出循环
cmp cl,61h
jb next ;小于'a'的字符不处理
cmp cl,7ah
ja next ;大于'z'的字符不处理
and cl,11011111b
mov [si],...
阅读全文 |
评论次数(2) |
浏览次数(670) |
所属类型(汇编作业)
[2008-06-23 11:25] 课程设计一
assume cs:code
data segment
db '1975',0,'1976',0,'1977',0,'1978',0,'1979',0,'1980',0,'1981',0,'1982',0,'1983',0
db '1984',0,'1985',0,'1986',0,'1987',0,'1988',0,'1989',0,'1990',0,'1991',0,'1992',0
db '1993',0,'1994',0,'1995',0
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
data segment
db '1975',0,'1976',0,'1977',0,'1978',0,'1979',0,'1980',0,'1981',0,'1982',0,'1983',0
db '1984',0,'1985',0,'1986',0,'1987',0,'1988',0,'1989',0,'1990',0,'1991',0,'1992',0
db '1993',0,'1994',0,'1995',0
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,974...
阅读全文 |
评论次数(1) |
浏览次数(604) |
所属类型(汇编作业)
[2008-06-22 20:53] 将dword型数据转变为表示十进制数字符串的子程序
;名称:dtoc
;功能:将dword型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; ds:si指向字符串的首地址
;返回:无
dtoc:
;保存寄存器状态
push ax
push bx
push cx
push dx
push si
push di
mov di,0 ;初始化字符个数计数器
divdword:
mov cx,10 ;将除数10写入cx
call divdw ;调用除法子程...
;功能:将dword型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=dword型数据的低16位
; (dx)=dword型数据的高16位
; ds:si指向字符串的首地址
;返回:无
dtoc:
;保存寄存器状态
push ax
push bx
push cx
push dx
push si
push di
mov di,0 ;初始化字符个数计数器
divdword:
mov cx,10 ;将除数10写入cx
call divdw ;调用除法子程...
阅读全文 |
评论次数(1) |
浏览次数(951) |
所属类型(汇编作业)
[2008-06-22 20:29] 实验10 数值显示子程序
子程序如下:
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
dtoc:
;保存寄存器状态
push ax
push bx
push cx
push dx
push si
push di
mov bx,10 ;将除数10写入bx
mov di,0 ;初始化字符个数计数器
divdw:
mov dx,0
div bx ;做除法
add dx,30h ;余数加30h ...
;名称:dtoc
;功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
;参数:(ax)=word型数据
; ds:si指向字符串的首地址
;返回:无
dtoc:
;保存寄存器状态
push ax
push bx
push cx
push dx
push si
push di
mov bx,10 ;将除数10写入bx
mov di,0 ;初始化字符个数计数器
divdw:
mov dx,0
div bx ;做除法
add dx,30h ;余数加30h ...
阅读全文 |
评论次数(2) |
浏览次数(652) |
所属类型(汇编作业)
[2008-06-22 10:00] 实验10 除法子程序
divdw:
;保存寄存器状态
push si
push di
mov si,ax ;被除数低位保存进si
mov ax,dx ;被除数高位送ax
mov dx,0
div cx ;高位除法
mov di,ax ;将高位的商保存进di
mov ax,si ;被除数低位送ax
div cx ;低位除法
mov cx,dx ;余数送cx
mov dx,di ;高位商送dx
;恢复寄存器状态
pop di
pop si
ret...
;保存寄存器状态
push si
push di
mov si,ax ;被除数低位保存进si
mov ax,dx ;被除数高位送ax
mov dx,0
div cx ;高位除法
mov di,ax ;将高位的商保存进di
mov ax,si ;被除数低位送ax
div cx ;低位除法
mov cx,dx ;余数送cx
mov dx,di ;高位商送dx
;恢复寄存器状态
pop di
pop si
ret...
阅读全文 |
评论次数(1) |
浏览次数(547) |
所属类型(汇编作业)
[2008-06-22 00:42] 实验10 显示字符串子程序
show_str:
;保存当前寄存器状态
push ax
push bx
push cx
push es
push si
;设置es位置
mov ax,0b800h
mov es,ax
;计算当前行列的位置
mov al,0a0h
mul dh
mov bx,ax
mov al,2h
mul dl
add bx,ax
;记录颜色设置
mov ah,cl
;循环显示字符
show_char:
;若cx为零,则显示结束
mov cl,[si]
m...
;保存当前寄存器状态
push ax
push bx
push cx
push es
push si
;设置es位置
mov ax,0b800h
mov es,ax
;计算当前行列的位置
mov al,0a0h
mul dh
mov bx,ax
mov al,2h
mul dl
add bx,ax
;记录颜色设置
mov ah,cl
;循环显示字符
show_char:
;若cx为零,则显示结束
mov cl,[si]
m...
阅读全文 |
评论次数(1) |
浏览次数(582) |
所属类型(汇编作业)
[2008-06-18 19:39] 实验9 根据材料编程
assume cs:codesg
data segment
;待显示的文字
db 'welcome to masm!'
;文字属性
db 00000010b,00100100b,01110001b
data ends
codesg segment
start:
mov ax,0b800h
mov ds,ax
mov ax,data
mov es,ax
mov bx,71eh
mov cx,3h
mov bp,10h
;行循环
colum:
mov dx,cx
mov cx,10h
mov si,0
mov di,0
;...
data segment
;待显示的文字
db 'welcome to masm!'
;文字属性
db 00000010b,00100100b,01110001b
data ends
codesg segment
start:
mov ax,0b800h
mov ds,ax
mov ax,data
mov es,ax
mov bx,71eh
mov cx,3h
mov bp,10h
;行循环
colum:
mov dx,cx
mov cx,10h
mov si,0
mov di,0
;...
阅读全文 |
评论次数(1) |
浏览次数(600) |
所属类型(汇编作业)
[2008-06-17 21:21] 实验七 寻址方式在结构化数据访问中的应用
assume cs:codesg
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,80353...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,80353...
阅读全文 |
评论次数(1) |
浏览次数(624) |
所属类型(汇编作业)