


- [rexic] 第(5)小题可精简为: assume cs:code a segment db 1 11/14 21:38
- [rexic] 用本章的转移指令来完成 assume cs:code,ds:data data seg 10/12 11:10
- [rexic] 使用 'div 内存单元' 操作时, 一定要指定操作长度类型, 否则报错, 10/09 13:45
[2015-11-01 20:18] 实验16 编写包含多个功能子程序的中断例程
;安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序。
;
; (1)清屏;
; (2)设置前景色;
; (3)设置背景色;
; (4)向上滚动一行。
;
; 入口参数说明如下
;
; (1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
; (2)对于1、2号功能,用al传递颜色值,(al)∈{0,1,2,3,4,5,6,7}。
;
;
;在进行这个实验时,往往会参考16.4给出的代码(四个子程序和直接定址表功能选择程序)如果安装16.4给出的功能子程序的安装程序习惯采用下面图1安装结构会出问题,问题有两...
;
; (1)清屏;
; (2)设置前景色;
; (3)设置背景色;
; (4)向上滚动一行。
;
; 入口参数说明如下
;
; (1)用ah寄存器传递功能号:0表示清屏,1表示设置前景色,2表示设置背景色,3表示向上滚动一行;
; (2)对于1、2号功能,用al传递颜色值,(al)∈{0,1,2,3,4,5,6,7}。
;
;
;在进行这个实验时,往往会参考16.4给出的代码(四个子程序和直接定址表功能选择程序)如果安装16.4给出的功能子程序的安装程序习惯采用下面图1安装结构会出问题,问题有两...
阅读全文 |
评论次数(0) |
浏览次数(725) |
所属类型(实验)
[2015-11-01 13:24] 实验15 安装新的int9中断例程
;安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”,其他的键
;照常处理。
;提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80h。
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
...
;照常处理。
;提示,按下一个键时产生的扫描码称为通码,松开一个键产生的扫描码称为断码。断码=通码+80h。
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
...
阅读全文 |
评论次数(0) |
浏览次数(820) |
所属类型(实验)
[2015-11-01 13:18] 实验14 访问CMOS RAM
;编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
;注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元
;外,不要向其他的单元中写入内容,否则将引起一些系统错误。
assume cs:code
code segment
begin:mov bx,9
mov si,7c0h ;屏幕中间,年开头,60×12+32×2
;=1984=7c0h
mov cx,6
push cx
s:push cx
mov al,bl
o...
;注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元
;外,不要向其他的单元中写入内容,否则将引起一些系统错误。
assume cs:code
code segment
begin:mov bx,9
mov si,7c0h ;屏幕中间,年开头,60×12+32×2
;=1984=7c0h
mov cx,6
push cx
s:push cx
mov al,bl
o...
阅读全文 |
评论次数(0) |
浏览次数(713) |
所属类型(实验)
[2015-10-24 17:34] 实验13 编写、应用中断例程
(3)下面的程序,分别在屏幕的第2、4、6、8行显示4句英文诗,补全程序。
assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s : dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start:mov ax,cs
...
assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s : dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start:mov ax,cs
...
阅读全文 |
评论次数(0) |
浏览次数(625) |
所属类型(实验)
[2015-10-24 17:33] 实验12 编写0号中断的处理程序
;编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串"divide error!",然后返回到DOS
assume cs:code
code segment
begin:mov ax,cs ;设置ds:si指向源地址
mov ds,ax
mov si,offset do0
mov ax,0 ;设置es:di指向目标地址
mov es,ax
mov di,200h
mov cx,offset do0end-offset do0 ...
assume cs:code
code segment
begin:mov ax,cs ;设置ds:si指向源地址
mov ds,ax
mov si,offset do0
mov ax,0 ;设置es:di指向目标地址
mov es,ax
mov di,200h
mov cx,offset do0end-offset do0 ...
阅读全文 |
评论次数(0) |
浏览次数(584) |
所属类型(实验)
[2015-10-24 17:26] 实验11 编写子程序
;编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变成大写字母,描述如下。
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call...
;名称:letterc
;功能:将以0结尾的字符串中的小写字母转变成大写字母
;参数:ds:si指向字符串首地址
assume cs:codesg
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:mov ax,datasg
mov ds,ax
mov si,0
call...
阅读全文 |
评论次数(0) |
浏览次数(604) |
所属类型(实验)
[2015-10-12 19:50] 实验10 编写子程序 (3)
3 数值显示
1~3)在已知数据是12666的情况下
assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
d...
1~3)在已知数据是12666的情况下
assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
d...
阅读全文 |
评论次数(0) |
浏览次数(234) |
所属类型(实验)
[2015-10-12 09:34] 实验10 编写子程序 (1)(2)
1 显示字符串
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start:mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show...
assume cs:code
data segment
db 'welcome to masm!',0
data ends
code segment
start:mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
show...
阅读全文 |
评论次数(0) |
浏览次数(263) |
所属类型(实验)
[2015-10-04 13:45] 实验9 根据材料编程
assume cs:code,ds:data
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b872h
mov ss,ax
mov bx,0
mov bp,0
mov cx,16
s:mov al,[bx]
mov [bp],al
mov [bp+160],al
mov [bp+...
data segment
db 'welcome to masm!'
data ends
code segment
start:mov ax,data
mov ds,ax
mov ax,0b872h
mov ss,ax
mov bx,0
mov bp,0
mov cx,16
s:mov al,[bx]
mov [bp],al
mov [bp+160],al
mov [bp+...
阅读全文 |
评论次数(1) |
浏览次数(672) |
所属类型(实验)
[2015-10-04 13:44] 实验8 分析一个奇怪的程序
assume cs:codesg
codesg segment
mov ax,4c00h
int 21h
start:mov ax,0
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short s
s1:mov ax,0
int 21h
mov ax,0
s2:jmp short s1
...
codesg segment
mov ax,4c00h
int 21h
start:mov ax,0
s:nop
nop
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
s0:jmp short s
s1:mov ax,0
int 21h
mov ax,0
s2:jmp short s1
...
阅读全文 |
评论次数(0) |
浏览次数(266) |
所属类型(实验)