我将中断例程放在最前面,使得它在安装后仍能找到正确的偏移地址,同时将中断例程的CS值设为20h,IP值设为0,方便寻址。
完整程序如下:
ASSUME CS:CODE
CODE SEGMENT
INT7C: JMP SHORT INT7C_B
TABLE DW SUB0,SUB1,SUB2,SUB3
INT7C_B: PUSH BX
CMP AH,3
JA INT7C_Q
...
[2015-03-03 13:32] 实验16
阅读全文 |
评论次数(0) |
浏览次数(398) |
所属类型(汇编作业)
[2015-03-03 13:28] 实验15
ASSUME CS:CODE,SS:STACK
STACK SEGMENT
DB 20H DUP (0)
STACK ENDS
CODE SEGMENT
START: MOV AX,STACK
MOV SS,AX
MOV SP,20H
PUSH CS
POP DS
MO...
STACK SEGMENT
DB 20H DUP (0)
STACK ENDS
CODE SEGMENT
START: MOV AX,STACK
MOV SS,AX
MOV SP,20H
PUSH CS
POP DS
MO...
阅读全文 |
评论次数(0) |
浏览次数(383) |
所属类型(汇编作业)
[2015-03-01 10:39] 实验14
assume cs:code,ds:data
data segment
db 9,8,7,4,2,0 ;CMOS中相应的内存单元位置
db '// ::',0 ;每个时间数据对应的标点符号
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,34*2+12*160
r:mov al,[si]
out 70h,al
in al,71h
mov ah,0
mov cl,4
sh...
data segment
db 9,8,7,4,2,0 ;CMOS中相应的内存单元位置
db '// ::',0 ;每个时间数据对应的标点符号
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,34*2+12*160
r:mov al,[si]
out 70h,al
in al,71h
mov ah,0
mov cl,4
sh...
阅读全文 |
评论次数(0) |
浏览次数(407) |
所属类型(汇编作业)
[2015-02-28 12:32] 实验13(3)
OPTION M510 ;MASM6.15编译器编译需输入此行,否则不兼容
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) |
浏览次数(365) |
所属类型(汇编作业)
[2015-02-28 12:30] 实验13(2)
中断例程及其安装程序:
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend-offset lp
cld
rep movsb
mov word ptr ES:[7ch*4],200h
mov word ptr ES:[7ch*4+2],0
mov ax,4c00h
int 21h
lp: push bp
mov bp,...
assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov si,offset lp
mov ax,0
mov es,ax
mov di,200h
mov cx,offset lpend-offset lp
cld
rep movsb
mov word ptr ES:[7ch*4],200h
mov word ptr ES:[7ch*4+2],0
mov ax,4c00h
int 21h
lp: push bp
mov bp,...
阅读全文 |
评论次数(0) |
浏览次数(356) |
所属类型(汇编作业)
[2015-02-28 12:29] 实验13(1)
中断例程及其安装程序:
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,offset showstrend-offset showstr
cld
rep movsb
mov word ptr ES:[7ch*4],200h
mov word ptr ES:[7ch*4+2],0
mov ax,4c00h
int 21h
showstr:p...
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,offset showstrend-offset showstr
cld
rep movsb
mov word ptr ES:[7ch*4],200h
mov word ptr ES:[7ch*4+2],0
mov ax,4c00h
int 21h
showstr:p...
阅读全文 |
评论次数(0) |
浏览次数(371) |
所属类型(汇编作业)
[2015-02-27 15:07] 解决MASM6.15编译器 A2166 号错误的办法
笔者最近在学习汇编语言的过程中,发现课本上有些寻址方式的格式在MASM6.15版本中不被支持,凡是格式中包含"."操作符的寻址方式都会报错,显示:
error A2166: structure field expected
遇到这种情况:在写代码的时候,在代码前加上一句伪指令:
OPTION M510
就可以了。...
error A2166: structure field expected
遇到这种情况:在写代码的时候,在代码前加上一句伪指令:
OPTION M510
就可以了。...
阅读全文 |
评论次数(0) |
浏览次数(413) |
所属类型(默认类型)
[2015-02-27 14:32] 课程设计 1
程序代码如下:
ASSUME ES:DATA,DS:DATA2,CS:CODESG,SS:STACK
DATA SEGMENT
DD 1975,1976,1977,1978,1979,1980,1981,1982,1983
DD 1984,1985,1986,1987,1988,1989,1990,1991,1992
DD 1993,1994,1995
...
ASSUME ES:DATA,DS:DATA2,CS:CODESG,SS:STACK
DATA SEGMENT
DD 1975,1976,1977,1978,1979,1980,1981,1982,1983
DD 1984,1985,1986,1987,1988,1989,1990,1991,1992
DD 1993,1994,1995
...
阅读全文 |
评论次数(0) |
浏览次数(407) |
所属类型(汇编作业)
[2015-02-27 14:25] 实验10(3)利用divdw的十进制转换
子程序名称:dtocdw
功能:将一个双字型数据转化为以0结束的十进制字符串,并输出于指定位置
参数:ax=双字型数据低16位
dx=双字型数据高16位
ds:si指向字符串首地址
返回:无
DTOCDW: PUSH CX
PUSH SI
PUSH AX
PUSH DX
SUB CX,CX
PUSH CX
DTOCDW_DIV:...
功能:将一个双字型数据转化为以0结束的十进制字符串,并输出于指定位置
参数:ax=双字型数据低16位
dx=双字型数据高16位
ds:si指向字符串首地址
返回:无
DTOCDW: PUSH CX
PUSH SI
PUSH AX
PUSH DX
SUB CX,CX
PUSH CX
DTOCDW_DIV:...
阅读全文 |
评论次数(0) |
浏览次数(394) |
所属类型(汇编作业)
[2015-02-27 14:20] 实验10(2)无溢出除法
子程序名称:divdw
功能:进行被除数是两个字,除数是一个字大小的除法运算
参数:ax=被除数低16位
dx=被除数高16位
cx=除数
返回:ax=商低16位
dx=商高16位
cx=余数
DIVDW: PUSH BP
PUSH AX
MOV AX,DX
SUB DX,DX
DIV CX
MOV BP,SP...
功能:进行被除数是两个字,除数是一个字大小的除法运算
参数:ax=被除数低16位
dx=被除数高16位
cx=除数
返回:ax=商低16位
dx=商高16位
cx=余数
DIVDW: PUSH BP
PUSH AX
MOV AX,DX
SUB DX,DX
DIV CX
MOV BP,SP...
阅读全文 |
评论次数(0) |
浏览次数(344) |
所属类型(汇编作业)