Dos汇编
链接: http://pan.baidu.com/s/17WuIN
密码: qjfm...


- [h2o] 在子程序dtoc2中调用了divdw了 11/23 11:09
- [752495796] 你编写的子程序divdw 在主程序中都没有调用 是不是应该要在算人均的时候调用一下呢? 11/17 17:17
- [hky987654321] 祝贺毕业! 08/11 10:45
- [cutebe] 哇,恭喜完成课程设计二 ^_^ 08/10 15:56
- [h2o] 做课程设计2时有显示日期时间的功能,又写了一遍,不仅增加了动态显示时间而且添加了q键退出功能 - 08/08 18:41
- [h2o] 感觉写得复杂了,改天重写一遍 07/27 22:05
- [hky987654321] 自我纠正:mov cx,40h 是对的。 07/27 09:46
- [hky987654321] 第二题 assume cs:code code segment mov 07/26 21:05
[2013-11-23 11:35] 分享一下学习Dos汇编时收集的一些资料
阅读全文 |
评论次数(0) |
浏览次数(723) |
所属类型(汇编作业)
[2013-08-06 22:44] 检测点17.1
“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
IF=0,使CPU处于关可屏蔽中断状态,拒绝响应外设的可屏蔽中断请求
IF=1,使CPU处于开可屏蔽中断状态,能够响应外设的可屏蔽中断请求
一般中断过程如下:
(1)获取中断类型码N
(2)标志寄存器入栈
(3)IF,TF置0
(4)CS,IP入栈
(5)(cs)=(N*4+2),(ip)=(N*4)
已知,int9中断是可屏蔽中断,
如果int16中断内部没有设置if=1这一步的话,if一直为0,拒绝响应外设可屏蔽中断请求,
这时,如果键盘缓冲区内无字符,且又有应用程序从缓冲区读字符的...
IF=0,使CPU处于关可屏蔽中断状态,拒绝响应外设的可屏蔽中断请求
IF=1,使CPU处于开可屏蔽中断状态,能够响应外设的可屏蔽中断请求
一般中断过程如下:
(1)获取中断类型码N
(2)标志寄存器入栈
(3)IF,TF置0
(4)CS,IP入栈
(5)(cs)=(N*4+2),(ip)=(N*4)
已知,int9中断是可屏蔽中断,
如果int16中断内部没有设置if=1这一步的话,if一直为0,拒绝响应外设可屏蔽中断请求,
这时,如果键盘缓冲区内无字符,且又有应用程序从缓冲区读字符的...
阅读全文 |
评论次数(0) |
浏览次数(866) |
所属类型(汇编作业)
[2013-08-04 19:18] 检测点16.1~16.2
检测点16.1
-------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;将code段中a处的8个数据累加,结果存储到b处的叠字中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
...
-------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;将code段中a处的8个数据累加,结果存储到b处的叠字中
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
...
阅读全文 |
评论次数(0) |
浏览次数(902) |
所属类型(汇编作业)
[2013-08-03 22:56] 检测点15.1
(1)
-------------
pushf
call dword ptr ds:[0]
-------------
(2)
修改后的代码
------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;在屏幕中间依次显示"a"~"z",并可以让人看清
;在显示的过程中,按下esc键后,改变显示的颜色
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
stack segment
db 128 ...
-------------
pushf
call dword ptr ds:[0]
-------------
(2)
修改后的代码
------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;在屏幕中间依次显示"a"~"z",并可以让人看清
;在显示的过程中,按下esc键后,改变显示的颜色
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
stack segment
db 128 ...
阅读全文 |
评论次数(0) |
浏览次数(483) |
所属类型(汇编作业)
[2013-08-03 12:17] 检测点14.1~14.2
14.1
(1)
-------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;编程,读取CMOS RAM的2号单元的内容
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
code segment
mov al,2
out 70h,al ;将2送入端口70h
in al,71h ;从商品71读出2号单元的内容
code ends
end
-------------------
(2)
-------------------...
(1)
-------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;编程,读取CMOS RAM的2号单元的内容
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:code
code segment
mov al,2
out 70h,al ;将2送入端口70h
in al,71h ;从商品71读出2号单元的内容
code ends
end
-------------------
(2)
-------------------...
阅读全文 |
评论次数(0) |
浏览次数(527) |
所属类型(汇编作业)
[2013-08-03 00:17] 检测点13.2
判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
错误,因为对于8086CPU来说C0000~FFFFF这段内存是各类ROM空间,是只读的。
(2)int 19h中断例程,可以由DOS提供。
错误,先调用指令int 19h进行操作系统引导,然后计算机才由DOS操作系统控制...
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
错误,因为对于8086CPU来说C0000~FFFFF这段内存是各类ROM空间,是只读的。
(2)int 19h中断例程,可以由DOS提供。
错误,先调用指令int 19h进行操作系统引导,然后计算机才由DOS操作系统控制...
阅读全文 |
评论次数(0) |
浏览次数(493) |
所属类型(汇编作业)
[2013-08-03 00:17] 检测点13.1
(1)在上面的内容中,我们用7ch中断例程实现loop的功能,则上面的7ch中断例程能进行的最大转移位移是多少?
9.8节中提到
----------
loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为:-128~127
-----------
在这里,我们用7ch中断全程实现的loop的功能,原理是对IP的修改,按无符号数考虑的话,修改范围为:0~(2^16-1),只要满足s-se位移量+其它指令空间<=64KB即可。
参考:
http://www.asmedu.net/bbs/pasteinfo.j...
9.8节中提到
----------
loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。对IP的修改范围都为:-128~127
-----------
在这里,我们用7ch中断全程实现的loop的功能,原理是对IP的修改,按无符号数考虑的话,修改范围为:0~(2^16-1),只要满足s-se位移量+其它指令空间<=64KB即可。
参考:
http://www.asmedu.net/bbs/pasteinfo.j...
阅读全文 |
评论次数(0) |
浏览次数(475) |
所属类型(汇编作业)
[2013-08-01 13:31] 检测点12.1
(1)用Debug查看内存,情况如下:
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口地址为:0070:018B
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:0000:N*4
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:0000:N*4+2...
0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00
则3号中断源对应的中断处理程序入口地址为:0070:018B
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:0000:N*4
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:0000:N*4+2...
阅读全文 |
评论次数(0) |
浏览次数(355) |
所属类型(汇编作业)
[2013-07-30 14:54] 检测点11.1~11.4
检测点11.1
--------------------------
指令 结果 零标 偶标 负标
sub al,al (0000 0000) ZF=1 PF=1 SF=0
mov al,1 (0000 0001) ZF=1 PF=1 SF=0
push ax ( ) ZF=1 PF=1 SF=0
pop bx ( ) ZF=1 ...
--------------------------
指令 结果 零标 偶标 负标
sub al,al (0000 0000) ZF=1 PF=1 SF=0
mov al,1 (0000 0001) ZF=1 PF=1 SF=0
push ax ( ) ZF=1 PF=1 SF=0
pop bx ( ) ZF=1 ...
阅读全文 |
评论次数(0) |
浏览次数(338) |
所属类型(汇编作业)
[2013-07-28 15:02] 检测点10.5(2)
------------------------
assume cs:code
data segment
dw 8 dup (0)
data ends
code segment
start:
mov ax,data
mov ss,ax
mov sp,16
mov word ptr ss:[0],offset s
mov ss:[2],cs
call dword ptr ss:[0]
nop
s:
mov ax,offset s
sub ax,ss:[0ch]
mov bx,cs
sub bx,ss:[0eh]
mo...
assume cs:code
data segment
dw 8 dup (0)
data ends
code segment
start:
mov ax,data
mov ss,ax
mov sp,16
mov word ptr ss:[0],offset s
mov ss:[2],cs
call dword ptr ss:[0]
nop
s:
mov ax,offset s
sub ax,ss:[0ch]
mov bx,cs
sub bx,ss:[0eh]
mo...
阅读全文 |
评论次数(0) |
浏览次数(363) |
所属类型(汇编作业)