- [游客] 加油,坚持! 12/17 09:52
- [16141602] 我也是抄书~不然记忆不清晰~我会买一本杨季文的书看看~ 谢谢 指点 01/03 13:25
- [e56004474] 时间充足,条件允许的话,你可以 看下杨季文 写的书,用来加强下,做他后面的 习题,在PC上动手写程序 01/02 18:32
- [16141602] 谢谢了 我懂了 12/12 23:20
- [游客] pop 操作过程是什么呢?是不是先取数据,然后sp+2?那么,先把栈中0偏移的处的一个字的数据pop 12/12 17:21
[2016-12-14 17:45] 汇编网
第一次接触汇编的时候,进入了汇编网,注册了自己的账号,开通了自己的博客,购买了新书开始学习,至今已经看完win32 ,在汇编网最让我感动的是有问题立马就会有老师解决,无名无姓,无偿回复帮助你,虽然在这里的日子不是很长,但我已经爱上了这里的学习气氛,可惜!现在的所有内容被每天的广告占据,也有好长一段时间打不开,今天终于可以正常访问。 谢谢汇编网...
阅读全文 |
评论次数(1) |
浏览次数(1741) |
所属类型(学习笔记)
[2015-05-09 12:50] 监测点 16.2
assume cs:code,ds:data
data segment
a dw 1,2,3,4,5,6,7,8,
b dd 0
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
add b,ax
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start...
data segment
a dw 1,2,3,4,5,6,7,8,
b dd 0
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov cx,8
s:mov al,a[si]
mov ah,0
add b,ax
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(505) |
所属类型(汇编作业)
[2015-05-09 11:55] 监测点 16.1
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8,9
b dd 0
start:mov si,0
mov cx,8
s:mov ax,a[si]
add word ptr b[0],ax
adc word ptr b[2],0 ;adc 相加低位
add si,2 ;指向A段的第二个字
loop s
mov ax,4c00h
int 21h
code ends
end start...
code segment
a dw 1,2,3,4,5,6,7,8,9
b dd 0
start:mov si,0
mov cx,8
s:mov ax,a[si]
add word ptr b[0],ax
adc word ptr b[2],0 ;adc 相加低位
add si,2 ;指向A段的第二个字
loop s
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(0) |
浏览次数(520) |
所属类型(汇编作业)
[2015-05-06 13:28] 试验 15
assume ss:stack,cs:code
stack segment
db 128 dup(0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128 ;栈顶
push cs
pop ds ;ds = cs
mov si,offset int9 ;取int9的标号地址
mov ax,0
mov es,ax
mov di,204H ;存储新int9的地址
mov cx,offset int9ends -offset int9
...
stack segment
db 128 dup(0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128 ;栈顶
push cs
pop ds ;ds = cs
mov si,offset int9 ;取int9的标号地址
mov ax,0
mov es,ax
mov di,204H ;存储新int9的地址
mov cx,offset int9ends -offset int9
...
阅读全文 |
评论次数(0) |
浏览次数(509) |
所属类型(汇编作业)
[2015-05-06 11:05] 十五章 实验
五章 实验
;15.4编写 int 9 中断例程
;键盘输入的处理过程:
;① 检测盘存扫描码
;② 扫描码送入60H
;③ 引发9号中断
;④Cpu 执行int 9 号中断例程处理键盘输入,
;以上的① ② ③ 是由Cpu自动完成的,
;程序员能够改变的只有 int 9 中段处理程序,
;在编写的例程中调用int 9 的中断例程
;编程;在屏幕中间 显示 “a”,“z”,并可以让人看清,在显示的过程中按下Esc键后,改变显示的颜色,
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax ...
;15.4编写 int 9 中断例程
;键盘输入的处理过程:
;① 检测盘存扫描码
;② 扫描码送入60H
;③ 引发9号中断
;④Cpu 执行int 9 号中断例程处理键盘输入,
;以上的① ② ③ 是由Cpu自动完成的,
;程序员能够改变的只有 int 9 中段处理程序,
;在编写的例程中调用int 9 的中断例程
;编程;在屏幕中间 显示 “a”,“z”,并可以让人看清,在显示的过程中按下Esc键后,改变显示的颜色,
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax ...
阅读全文 |
评论次数(0) |
浏览次数(525) |
所属类型(学习笔记)
[2015-05-06 11:04] 15.3 键盘 的处理过程
1、键盘输入;
键盘上的每一个键,相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描,
按下一个键时, 该芯片就产生一个扫码,扫码说明了按下的键在键盘上的位置,
扫码被送入主板上的相关借口芯片的寄存器中, 该寄存器的端口地址为60H
松开按下的键时,也产生一个扫码,扫码说明了松开的键在键盘上的位置,
松开按键时产生的扫码也被送入到60H端口中。
一般我们将按下一个键,产生的扫码 称为:通码
松开一个键产生的扫码,我们 称为;断码
扫描码的长度为一个字节,通码的第7位为0;断码的第7位为;1
即;
断码 = 通码 + 8...
键盘上的每一个键,相当于一个开关,键盘中有一个芯片对键盘上的每一个键的开关状态进行扫描,
按下一个键时, 该芯片就产生一个扫码,扫码说明了按下的键在键盘上的位置,
扫码被送入主板上的相关借口芯片的寄存器中, 该寄存器的端口地址为60H
松开按下的键时,也产生一个扫码,扫码说明了松开的键在键盘上的位置,
松开按键时产生的扫码也被送入到60H端口中。
一般我们将按下一个键,产生的扫码 称为:通码
松开一个键产生的扫码,我们 称为;断码
扫描码的长度为一个字节,通码的第7位为0;断码的第7位为;1
即;
断码 = 通码 + 8...
阅读全文 |
评论次数(0) |
浏览次数(538) |
所属类型(学习笔记)
[2015-05-06 11:04] 第 15 章 外中断
Cpu 在计算机系统中,处了能够知晓指令,进行运算以外,还应该能够对外部的设备进行控制,接受他们的输入、向他们进行输出,
也就是说;Cpu 除了有运算功能外,还要有I/O (输入/输出)的能力,
比如我们按下键盘上的一个键,Cpu 最红要能够处理这个键,在使用文本编辑器时,按下 ‘A’键后,我们就可以看到屏幕上出现一个'A',是Cpu将从键盘上输入的键所对应的字符送到显示器上的。
及时处理外设的输入,我们需要解决两个问题;
①; 外设的输入随时都可能发生CPU如何得知?
②; Cpu 从何处得到外设的输入?
15.1 接口芯片和端口
我们知道,PC系统的接口卡...
也就是说;Cpu 除了有运算功能外,还要有I/O (输入/输出)的能力,
比如我们按下键盘上的一个键,Cpu 最红要能够处理这个键,在使用文本编辑器时,按下 ‘A’键后,我们就可以看到屏幕上出现一个'A',是Cpu将从键盘上输入的键所对应的字符送到显示器上的。
及时处理外设的输入,我们需要解决两个问题;
①; 外设的输入随时都可能发生CPU如何得知?
②; Cpu 从何处得到外设的输入?
15.1 接口芯片和端口
我们知道,PC系统的接口卡...
阅读全文 |
评论次数(0) |
浏览次数(540) |
所属类型(学习笔记)
[2015-05-06 11:04] 实验 14 访问 Cmos RAM
实验 14 访问 Cmos RAM
编程 以 “年 / 月/日 时 :分: 秒 ”的格式 ,显示当前的日期时间,
注意 : Cmos RAM 中存储着系统的配置信息,处理保存时间信息的单元外,
不要向其他的单元中写入内容,否则将引发一些未知的错误.
图片
代码如下
assume cs:code
data segment
db '00/00/00 00:00:00','$'
db 9,8,7,4,2,0
data ends
code segment
start:
mov ax,data
mov ds,ax...
编程 以 “年 / 月/日 时 :分: 秒 ”的格式 ,显示当前的日期时间,
注意 : Cmos RAM 中存储着系统的配置信息,处理保存时间信息的单元外,
不要向其他的单元中写入内容,否则将引发一些未知的错误.
图片
代码如下
assume cs:code
data segment
db '00/00/00 00:00:00','$'
db 9,8,7,4,2,0
data ends
code segment
start:
mov ax,data
mov ds,ax...
阅读全文 |
评论次数(0) |
浏览次数(507) |
所属类型(汇编作业)
[2015-05-06 11:03] 14.4 Cmos RAM 中存储的时间信息
在 Cmos RAM 中,
存储的当前的时间 年, 月 ,日, 时, 分, 秒。这6个信息的长度都为一个字节,存放单元为;
秒:0
分:2
时:4
日:7
月:8
年:9
这些都是以DCB码的方式存放,
DBC码是以4位二进制数表示十进制的编码方式;
一个字节可以表示两个DBC吗 则Cmos RAM 存储时间信息的单元中,存储了两个DBC码表示的两个十进制数,高四位的DBC吗表示十位,低四位的BCD码表示个位 比如:00010100B 表示14
编程 在屏幕中间显示当前的月份
首先 分析,这个程序主要做一下两部分工作
① 从 Cmos RAM 的8号单元中读出当前...
存储的当前的时间 年, 月 ,日, 时, 分, 秒。这6个信息的长度都为一个字节,存放单元为;
秒:0
分:2
时:4
日:7
月:8
年:9
这些都是以DCB码的方式存放,
DBC码是以4位二进制数表示十进制的编码方式;
一个字节可以表示两个DBC吗 则Cmos RAM 存储时间信息的单元中,存储了两个DBC码表示的两个十进制数,高四位的DBC吗表示十位,低四位的BCD码表示个位 比如:00010100B 表示14
编程 在屏幕中间显示当前的月份
首先 分析,这个程序主要做一下两部分工作
① 从 Cmos RAM 的8号单元中读出当前...
阅读全文 |
评论次数(0) |
浏览次数(513) |
所属类型(学习笔记)
[2015-05-06 11:03] 14.3 shl 和 shr 指令
shl 和 shr 指令 是逻辑位移指令;
shl 是座机左移指令,它的功能为;
① 将一个寄存器或内存单元中的数据向左移位;
② 将最后一处的移位写入CF中;
③ 最低位用0补充。
指令:
mov al,01001000B
shl al,1 ;将ax中的内容左移一位;
执行后;
al = 10010000B CF = 0
如果位移位数大于1 ,则我们用cl放置移动的位数,
比如指令;
mov al,01010001b
mov cl,3
shl al,cl ;左移三位
执行后:
ax = 10001000B CF = 0
移出的最后一位 ...
shl 是座机左移指令,它的功能为;
① 将一个寄存器或内存单元中的数据向左移位;
② 将最后一处的移位写入CF中;
③ 最低位用0补充。
指令:
mov al,01001000B
shl al,1 ;将ax中的内容左移一位;
执行后;
al = 10010000B CF = 0
如果位移位数大于1 ,则我们用cl放置移动的位数,
比如指令;
mov al,01010001b
mov cl,3
shl al,cl ;左移三位
执行后:
ax = 10001000B CF = 0
移出的最后一位 ...
阅读全文 |
评论次数(0) |
浏览次数(542) |
所属类型(学习笔记)
『 查看更多文章 』