assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
set:jmp short sete
table dw sub1,sub2,sub3,sub4
sete:push bx
mov bl,ah
mov bh,0
add bx,bx
call word ptr table[bx]
pop bx
iret
sub1:push bx
push cx...


- [qiangzi] 漂亮!! 02/05 17:54
- [scuzg] 补码溢出判断是汇编语言学习的一个难点,我也曾希望从原理到方法上讲清楚这样事情: http://ww 12/31 12:01
- [release_lag] 谢谢指点,明白了 12/10 11:24
- [tinyparticle] 给段代码参考下,可以看下这个程序的逻辑: assume cs:code,ds:data,es:ta 12/08 15:11
- [游客] 9494 一窍不通的一看也就记住咯 顶个顶个 12/08 11:16
- [mywiil] 博主总结的不错啊。呵呵 12/04 09:24
- [release_lag] 谢谢提醒,我那样讲不严谨,所以,我改了一些,谢谢指正 12/03 08:52
- [游客] N小于16;N刚好被16整除;还有N不能被16整除 ========= “N小于16”也属于“N 12/01 16:00
- [release_lag] 谢谢abob ,我把笔记做了修改 11/05 09:54
- [liandakun] 二进制数1111 1111转化成十进制是2的8 次方减一,而不是2的8次方吧. 10/31 11:13
- [waiwai] 你的win32教材是罗云彬的吗? 感觉学习win32有难度,而罗云彬的教材相对王爽老师的教材也 01/27 10:10
[2010-01-26 16:35] 实验16 编写包含多个功能子程序的中断例程
阅读全文 |
评论次数(0) |
浏览次数(801) |
所属类型(汇编作业)
[2010-01-21 11:35] 实验15 (可以看到实验效果的)
//程序中加入了delay,在程序没有返回到DOS之前,按A键是可以看到效果的
============================================
assume 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
mov ax,0
...
============================================
assume 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
mov ax,0
...
阅读全文 |
评论次数(1) |
浏览次数(935) |
所属类型(汇编作业)
[2010-01-15 20:26] 实验14
学习到第14这章的朋友,估计都能解决这个问题,我自己写完之后,也去论坛看到许多朋友写的程序
当然解决的办法有很多种,有用中断的,还有定义:“9,8,7,4,2,0,“/”,“/”,“:”,“:”
我的方法跟大家都不一样,不定义数据段
================================================
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov di,21*160+50*2
mov byte ptr es:[di+4],2fh
...
当然解决的办法有很多种,有用中断的,还有定义:“9,8,7,4,2,0,“/”,“/”,“:”,“:”
我的方法跟大家都不一样,不定义数据段
================================================
assume cs:code
code segment
start:mov ax,0b800h
mov es,ax
mov di,21*160+50*2
mov byte ptr es:[di+4],2fh
...
阅读全文 |
评论次数(0) |
浏览次数(615) |
所属类型(汇编作业)
[2010-01-13 11:56] 实验 13 编写、应用中断全程
(1)编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处
---我是用10号中断例程中的2号功能和9号功能来循环输出
-------------------------------------------------
代码如下:
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset showstr
mov ax,0
mov es,ax
mov di,200h
mov cx,...
---我是用10号中断例程中的2号功能和9号功能来循环输出
-------------------------------------------------
代码如下:
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset showstr
mov ax,0
mov es,ax
mov di,200h
mov cx,...
阅读全文 |
评论次数(0) |
浏览次数(713) |
所属类型(汇编作业)
[2010-01-08 15:47] 实验12 编写0号中断的处理程序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
为了验证程序的正确性,我直接在程序中加入了除法溢出
这个程序刚开始写的时候,我没有在do0中加入mov ax,4c00h,int 21H这两条指令,运行后总说CPU遇到无效指令,我还找了半天问题
------------------------------------
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,a...
为了验证程序的正确性,我直接在程序中加入了除法溢出
这个程序刚开始写的时候,我没有在do0中加入mov ax,4c00h,int 21H这两条指令,运行后总说CPU遇到无效指令,我还找了半天问题
------------------------------------
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,a...
阅读全文 |
评论次数(0) |
浏览次数(824) |
所属类型(汇编作业)
[2010-01-06 08:43] 实验11 编写子程序
letterc:push cx
mov cx,0
s:mov cl,[si]
jcxz over
cmp cl,61h
jb next
cmp cl,7ah
ja next
sub cl,20h
mov [si],cl
next:inc si
jmp short s
over:pop cx
ret
这次的实验不难,记住大写字母的ASCII代码对照就行了
小写字母的范围是:61H~7AH
大写字母的范围是:41H~5AH ...
mov cx,0
s:mov cl,[si]
jcxz over
cmp cl,61h
jb next
cmp cl,7ah
ja next
sub cl,20h
mov [si],cl
next:inc si
jmp short s
over:pop cx
ret
这次的实验不难,记住大写字母的ASCII代码对照就行了
小写字母的范围是:61H~7AH
大写字母的范围是:41H~5AH ...
阅读全文 |
评论次数(0) |
浏览次数(667) |
所属类型(汇编作业)
[2009-12-26 15:49] 课程设计1 精简版
根据朋友在我的一篇贴子里给出的代码,得到启示,把课程设计1中的dtoc_dw和dtoc合为一个子程序
下面贴出代码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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','...
下面贴出代码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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','...
阅读全文 |
评论次数(0) |
浏览次数(712) |
所属类型(汇编作业)
[2009-12-25 13:49] 课程设计1
先说下思路,因为这个程序比较综合,所以,要把整个题目分解成一个个小题目来解决
1、第一步首先要得到实验7的数据,这个好办,直接把实验7的源代码复制过来就行了
2、第二步分析数据,要把所有的数据转成十进制数据显示出来,我们先从第一行的数据开始着手
3、我们知道除了从0到4内存里的数据是十进制形式的,不需要转换以外,其它像收入,人数,人均收入等数据都需要转成十进制形式
4,要把数据全复制到显存中去,思路有两种,第一种,先把所有的数据转换成十进制式再复制到显存中去,还有一种思想就是把年份,收入,人数,人均收入,分别转成十进制式,再复制到显存中去...我选择第二种,第一种思路需要定义一个很长的...
1、第一步首先要得到实验7的数据,这个好办,直接把实验7的源代码复制过来就行了
2、第二步分析数据,要把所有的数据转成十进制数据显示出来,我们先从第一行的数据开始着手
3、我们知道除了从0到4内存里的数据是十进制形式的,不需要转换以外,其它像收入,人数,人均收入等数据都需要转成十进制形式
4,要把数据全复制到显存中去,思路有两种,第一种,先把所有的数据转换成十进制式再复制到显存中去,还有一种思想就是把年份,收入,人数,人均收入,分别转成十进制式,再复制到显存中去...我选择第二种,第一种思路需要定义一个很长的...
阅读全文 |
评论次数(0) |
浏览次数(363) |
所属类型(汇编作业)
[2009-12-17 14:19] 实验10 编写子程序
1,显示子符串
<><><>>><><><><><><>>>><<>><>
注意事项:在显存中00~01单元对应显示器上的第1列
02~03单元对应显示器上的第2列
04~05单元对应显示器上的第3列
我花了半天调试时间就耗在这上面了
下面贴代码
================================
================================
assume cs:code
data segment
db 'Welcome to masm!',0
data en...
<><><>>><><><><><><>>>><<>><>
注意事项:在显存中00~01单元对应显示器上的第1列
02~03单元对应显示器上的第2列
04~05单元对应显示器上的第3列
我花了半天调试时间就耗在这上面了
下面贴代码
================================
================================
assume cs:code
data segment
db 'Welcome to masm!',0
data en...
阅读全文 |
评论次数(0) |
浏览次数(290) |
所属类型(汇编作业)
[2009-12-12 13:49] 实验9 根据材料编程
直接贴代码
==================================
assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b878h
mov es,ax
mov bx,0
mov si,0
mov cx,16
s:mov al,[bx]
...
==================================
assume cs:code
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
code segment
start: mov ax,data
mov ds,ax
mov ax,0b878h
mov es,ax
mov bx,0
mov si,0
mov cx,16
s:mov al,[bx]
...
阅读全文 |
评论次数(0) |
浏览次数(381) |
所属类型(汇编作业)