;书上有现在的代码.但不全.因为前面有些内容看得快.不是太了解.为了能进行最后的实验课.就学习了这个.当然走了不少的弯路.代码还有代改进.多谢朋友们的指出.还没来得及学的朋友也没关系.编写时出错的地方.也可以学学.
assume cs:code,ds:data,ss:stack
data segment
db 128 dup(0)
data ends
stack segment
db 128 dup(0)
stack ends
code segment
start: mov ax,data
mov ds,ax
sub si,si
mov ax,stack
...


- [qingqingziyin] 还要是小菜鸟学习技术的家,当小菜鸟成长成一个个大牛的时候,这里仍然是你的家,不要忘记这里还有好多小菜 12/11 10:36
- [qingqingziyin] 希望以后这里不单是学汇编的家,还可以是学C的家,学数据结构的家,学操作系统的家,学java的家... 12/11 10:32
- [Wednesday] 温故而知新 还是要常来 12/08 22:35
- [fishboy] 常回家看看,有些兄弟们也许很高兴你给他们帮助! 12/08 10:16
- [startasm] 我觉得这个网站有种家的感觉,以后也会经常来的,现在正学汇编就先安家了~ 刚看完第三章,给自己加 12/08 10:11
- [游客] 楼主也要常回家看看哦~_~ 昨天看到网站已经开了IBM-PC汇编支持区,可能开80x86的日子 12/08 09:57
- [cxn] 虽然基础但是都很重要! 11/12 11:49
- [qingqingziyin] 还是觉得零散的知识点不知道往脑子里哪部分放,反而是个累赘 11/12 11:00
- [Wednesday] 只要有想法,就编出来上机试一下看看,到底如何即可明了。 不能实现再想别的办法,都做到这里了,应 11/12 10:18
- [Wednesday] 有趣儿的程序! 实现得挺完整!学习+收藏 11/09 17:51
[2007-11-06 00:12] 17.3 编写时几个出错的地方(字符串的输入)
阅读全文 |
评论次数(1) |
浏览次数(683) |
所属类型(汇编作业)
[2007-10-31 14:27]
汇编笔记
什么是汇编语言?
汇编语言的组成?
怎样让CPU工作?
(要想要一个CPU工作.就必须向它提供指令和数据)
CPU如何从内存中读取和写入数据的?
(要灵活的利用汇编语言编程.首先要了解CPU是如何从内存中读取信息.以及向内存写入信息)
指令和数据的区别?
CPU根据什么将内存中的数据看作指令?
存储单元编号与大小?
CPU如何进行数据读写?
如何命令计算机进行数据的读写?
(要让CPU工作.应向它输入能驱动它进行工作的电平信息.机器码)
计算机的三种总线
(每种CPU都有自己的汇编指令集)
什么是内存空间?
(计算机系统中.所有可用程序控制其工作的设备....
汇编语言的组成?
怎样让CPU工作?
(要想要一个CPU工作.就必须向它提供指令和数据)
CPU如何从内存中读取和写入数据的?
(要灵活的利用汇编语言编程.首先要了解CPU是如何从内存中读取信息.以及向内存写入信息)
指令和数据的区别?
CPU根据什么将内存中的数据看作指令?
存储单元编号与大小?
CPU如何进行数据读写?
如何命令计算机进行数据的读写?
(要让CPU工作.应向它输入能驱动它进行工作的电平信息.机器码)
计算机的三种总线
(每种CPU都有自己的汇编指令集)
什么是内存空间?
(计算机系统中.所有可用程序控制其工作的设备....
阅读全文 |
评论次数(8) |
浏览次数(1371) |
所属类型(汇编作业)
[2007-10-29 08:00] 延时显示a-z
;延时显示a-z
;单位为秒.延时准.但cpu占用100%
;这样看来.延时程序不是这样设计的.只是做来测试一下
;采用端口访问cmos ram内的时间.
assume cs:code
code segment
start: mov ax,0b800h
mov es,ax
mov al,'a'
mov ah,28
s: mov es:[160*12+40*2],ax
call delay ;调用延时
inc al
cmp al,'z'
jna s
mov ax,4c00h
int 21h
;delay延时程序
delay: push ...
;单位为秒.延时准.但cpu占用100%
;这样看来.延时程序不是这样设计的.只是做来测试一下
;采用端口访问cmos ram内的时间.
assume cs:code
code segment
start: mov ax,0b800h
mov es,ax
mov al,'a'
mov ah,28
s: mov es:[160*12+40*2],ax
call delay ;调用延时
inc al
cmp al,'z'
jna s
mov ax,4c00h
int 21h
;delay延时程序
delay: push ...
阅读全文 |
评论次数(1) |
浏览次数(779) |
所属类型(汇编作业)
[2007-10-29 03:40] letterc子程序
;以0结尾的串中的小写字母变为大写字母
;双重比较
assume cs:code,ds:data
data segment
db "Beginner's All-purpose Symoblic Instruction... Code.",0
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
;以0结尾的串中的小写字母变为大写字母
;ds:si指向串首地址
;返回时.还原si
;注意字符外的其它符号...
;双重比较
assume cs:code,ds:data
data segment
db "Beginner's All-purpose Symoblic Instruction... Code.",0
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0
call letterc
mov ax,4c00h
int 21h
;以0结尾的串中的小写字母变为大写字母
;ds:si指向串首地址
;返回时.还原si
;注意字符外的其它符号...
阅读全文 |
评论次数(1) |
浏览次数(579) |
所属类型(汇编作业)
[2007-10-28 22:46] 显示系统当前日期和时间
;获取系统当前日期和时间
assume cs:code
code segment
db '00/00/00 00:00:00$' ;时间串
r: db 9,8,7,4,2,0 ;地址表
start: mov ax,cs
mov ds,ax
mov bx,offset r
mov si,0
mov cx,6
s: mov al,[bx]
out 70h,al
in al,71h
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1
and al,00001111b
add ah,30h
...
assume cs:code
code segment
db '00/00/00 00:00:00$' ;时间串
r: db 9,8,7,4,2,0 ;地址表
start: mov ax,cs
mov ds,ax
mov bx,offset r
mov si,0
mov cx,6
s: mov al,[bx]
out 70h,al
in al,71h
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1
and al,00001111b
add ah,30h
...
阅读全文 |
评论次数(1) |
浏览次数(313) |
所属类型(汇编作业)
[2007-10-27 23:51] 设计课一
程序设计课1 功能:把数据用表格形式显示出来
这里只把一点想法写出来.程序还是给各位自己完成吧
一个很简单的想法.创建一行数据就显示一行
思路:
先假定我们有设计好的子程序.来完成我们的任务
1: 在数据段后开一个空间来暂存一行的数据(个人觉得这里比栈好用)
2: 以空格填充暂存空间 (为了清除上一次的数据.)
3: 年是串.直接复制到暂存空间
4: 取得人数 ==> 调用串化程序 ==> 结果放到暂存空间
5: 同样取得总收入 ==> 调用串化程序 ==> 结果放在暂存空间.
6: 计算平均值 ==> 把结果串化 ==> 放在暂存空间.
7: 结尾以0结束.
8: 调...
这里只把一点想法写出来.程序还是给各位自己完成吧
一个很简单的想法.创建一行数据就显示一行
思路:
先假定我们有设计好的子程序.来完成我们的任务
1: 在数据段后开一个空间来暂存一行的数据(个人觉得这里比栈好用)
2: 以空格填充暂存空间 (为了清除上一次的数据.)
3: 年是串.直接复制到暂存空间
4: 取得人数 ==> 调用串化程序 ==> 结果放到暂存空间
5: 同样取得总收入 ==> 调用串化程序 ==> 结果放在暂存空间.
6: 计算平均值 ==> 把结果串化 ==> 放在暂存空间.
7: 结尾以0结束.
8: 调...
阅读全文 |
评论次数(1) |
浏览次数(329) |
所属类型(汇编作业)
[2007-10-26 05:37] 子程序divdw
;32位/16位不溢出计算
assume cs:code
code segment
start:
mov dx,000fh
mov ax,4240h
mov cx,0ah ;参数设置
call divdw
mov ax,4c00h
int 21h
;32位/16位不溢出计算
;(ax)=dword型数据的低16位
;(dx)=dword型数据的高16位
;(cx)=除数
;返回
;(dx)结果高16位.(ax)结果低16位(cx)余数
;公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
;*...
assume cs:code
code segment
start:
mov dx,000fh
mov ax,4240h
mov cx,0ah ;参数设置
call divdw
mov ax,4c00h
int 21h
;32位/16位不溢出计算
;(ax)=dword型数据的低16位
;(dx)=dword型数据的高16位
;(cx)=除数
;返回
;(dx)结果高16位.(ax)结果低16位(cx)余数
;公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
;*...
阅读全文 |
评论次数(1) |
浏览次数(299) |
所属类型(汇编作业)
[2007-10-26 05:20] 子程序show_str
;在指定位置.指定颜色.显示一个以0结束的串
assume cs:code,ds:data
data segment
db 'welcome to masm!',0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov dh,8
mov dl,3
mov cl,2 ;参数设置
call show_str
mov ax,4c00h
int 21h
;在指定位置.指定颜色.显示一个以0结束的串
;(dh)行号(0-24).(dl)列号(0-79)
;(c...
assume cs:code,ds:data
data segment
db 'welcome to masm!',0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
mov dh,8
mov dl,3
mov cl,2 ;参数设置
call show_str
mov ax,4c00h
int 21h
;在指定位置.指定颜色.显示一个以0结束的串
;(dh)行号(0-24).(dl)列号(0-79)
;(c...
阅读全文 |
评论次数(1) |
浏览次数(319) |
所属类型(汇编作业)
[2007-10-25 22:43] 实验9
;在屏幕中间分别显示绿色,绿底红色.白底蓝色的串'welcome to masm!'
;做一个3*16循环显示串
assume cs:code,ds:data
data segment
db "welcome to masm!"
dw 02h,24h,71h ;定义三种颜色,空间有点浪费.但可以更好的循环
dw 67ch,71ch,7bch ;三行的首地址
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0B800H
mov es,ax ;显示内存段地址
mov ...
;做一个3*16循环显示串
assume cs:code,ds:data
data segment
db "welcome to masm!"
dw 02h,24h,71h ;定义三种颜色,空间有点浪费.但可以更好的循环
dw 67ch,71ch,7bch ;三行的首地址
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0B800H
mov es,ax ;显示内存段地址
mov ...
阅读全文 |
评论次数(1) |
浏览次数(309) |
所属类型(汇编作业)
[2007-10-25 00:51] 实验7
assume cs:code,ds:data,es:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984'
db '1985','1986','1987','1988','1989','1990'
db '1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803...
阅读全文 |
评论次数(1) |
浏览次数(294) |
所属类型(汇编作业)