编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、
时间。
assume cs:code, ds:data
data segment
a db 9,8,7,4,2,0 ; 按规定格式对应的时间信息安排地址
b db 'YY/MM/DD hh:mm:ss ','$'
data ends
code segment
start: mov ax,data
mov ds,ax
mov si,0
mov di,0
mov cx,6
s: push cx
mov al, ...
- [游客] 这个用nasm汇编器可以编译么?我用如下命令编译提示错误啊: nasm -f elf64 a.s 08/02 11:36
- [gladhongbin] debug跟踪 1,程序执行前: 0:0 8a 10 16 01 ... 0:20 02/26 16:46
- [gladhongbin] 运行结果: (dx)=0001h, (ax)=86a0h, (cx)=0 02/19 22:59
- [gladhongbin] 表达有点乱 02/13 13:41
[2016-03-03 23:13] 实验14 访问 CMOS RAM
阅读全文 |
评论次数(1) |
浏览次数(879) |
所属类型(汇编作业)
[2016-03-02 23:12] 检测点14.2
编程,用加法和位移指令计算 (ax)=(ax)*10。
push ax
mov cl,3
shl al,cl
pop cx
shl cl, 1
add ax,cx...
push ax
mov cl,3
shl al,cl
pop cx
shl cl, 1
add ax,cx...
阅读全文 |
评论次数(0) |
浏览次数(579) |
所属类型(汇编作业)
[2016-03-02 23:07] 检测点14.1
(1) 编程,读取CMOS RAM的2号单元的内容。
用debug的A命令
mov al, 2
out 70h, al
in al, 71h
(2) 编程,向CMOS RAM的2号单元写入0。
用debug的A命令
mov al, 2
out 70h, al
mov al, 0
out 71h, al
-------------------------...
用debug的A命令
mov al, 2
out 70h, al
in al, 71h
(2) 编程,向CMOS RAM的2号单元写入0。
用debug的A命令
mov al, 2
out 70h, al
mov al, 0
out 71h, al
-------------------------...
阅读全文 |
评论次数(0) |
浏览次数(579) |
所属类型(汇编作业)
[2016-03-02 22:59] 实验13 编写、应用中断例程
(1) 编写并安装 int 7ch 中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数:(dh)=行号, (dl)=列号, (cl)=颜色, ds:si指向字符串首地址。
安装程序:
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset disp
mov ax,0
mov es,ax
mov di,200h
mov ...
参数:(dh)=行号, (dl)=列号, (cl)=颜色, ds:si指向字符串首地址。
安装程序:
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset disp
mov ax,0
mov es,ax
mov di,200h
mov ...
阅读全文 |
评论次数(0) |
浏览次数(583) |
所属类型(汇编作业)
[2016-02-28 13:54] 检测点13.2
判断下面说法的正误:
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:错误,FFFF:0处是ROM的存储空间,其内容无法改变。
除非重新烧录它。
(2)int 19h中断例程,可以由DOS提供。
答:错误,先调用int 19h,后启动DOS。...
(1)我们可以编程改变FFFF:0处的指令,使得CPU不去执行BIOS中的硬件系统检测和初始化程序。
答:错误,FFFF:0处是ROM的存储空间,其内容无法改变。
除非重新烧录它。
(2)int 19h中断例程,可以由DOS提供。
答:错误,先调用int 19h,后启动DOS。...
阅读全文 |
评论次数(0) |
浏览次数(568) |
所属类型(汇编作业)
[2016-02-28 12:47] 检测点13.1
(1)在上面的内容中(书p256),我们用7ch中断例程实现loop功能,则上面的7ch中断例程所能进行的最大转移位移是多少?
回答:bx最大可以-32768,但是要求(bx)+(offset se)的值>=(offset s), 就是说修改后的ip不能为负,而且要等于标号s前的所有指令机器码个数的和。
loop指令修改8位位移,本中断例程可修改16位位移。
----------------
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送位移。
应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs...
回答:bx最大可以-32768,但是要求(bx)+(offset se)的值>=(offset s), 就是说修改后的ip不能为负,而且要等于标号s前的所有指令机器码个数的和。
loop指令修改8位位移,本中断例程可修改16位位移。
----------------
(2)用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送位移。
应用举例:在屏幕的第12行,显示data段中以0结尾的字符串。
assume cs...
阅读全文 |
评论次数(0) |
浏览次数(635) |
所属类型(汇编作业)
[2016-02-26 16:38] 实验12 编写0号中断的处理程序
assume cs:code
code segment
start: mov ax, cs
mov ds, ax
mov si, offset do0 ; 设置ds:si 指向源地址
mov ax, 0
mov es, ax
mov di, 200h ; 设置es:di 指向目的地址
mov cx, offset do0end - offset do0
; 设置cx为传输长度
...
code segment
start: mov ax, cs
mov ds, ax
mov si, offset do0 ; 设置ds:si 指向源地址
mov ax, 0
mov es, ax
mov di, 200h ; 设置es:di 指向目的地址
mov cx, offset do0end - offset do0
; 设置cx为传输长度
...
阅读全文 |
评论次数(1) |
浏览次数(955) |
所属类型(汇编作业)
[2016-02-26 10:21] 检测点12.1
(1) 用debug查看内存,情况如下:
0000:0000 68 10 a7 00 8b 01 70 00-16 00 9d 03 8b 01 70 00
则3号中断源对应的中断处理程序的入口地址为:0007:018b
(2) 存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:4*N
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:4*N+2...
0000:0000 68 10 a7 00 8b 01 70 00-16 00 9d 03 8b 01 70 00
则3号中断源对应的中断处理程序的入口地址为:0007:018b
(2) 存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:4*N
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:4*N+2...
阅读全文 |
评论次数(0) |
浏览次数(585) |
所属类型(汇编作业)
[2016-02-26 10:02] 实验11 编写子程序
编写一个子程序,将包含任意字符,以0结尾的字符串中的小写字母转变为大写字母,描述如下:
名称:letterc
功能:将以0结尾的字符串中的小写字母转变为大写字母
参数:ds:si指向字符串首地址
应用举例
assume cs:code
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.", 0
datasg ends
code segment
begin: mov ax, datasg
mov ds, ax
mov s...
名称:letterc
功能:将以0结尾的字符串中的小写字母转变为大写字母
参数:ds:si指向字符串首地址
应用举例
assume cs:code
datasg segment
db "Beginner's All-purpose Symbolic Instruction Code.", 0
datasg ends
code segment
begin: mov ax, datasg
mov ds, ax
mov s...
阅读全文 |
评论次数(0) |
浏览次数(572) |
所属类型(汇编作业)
[2016-02-25 22:38] 检测点11.4
下面程序执行后,(ax) = ?
mov ax, 0 ; (ax)=0
push ax
popf ; 应该(flag)=0
mov ax,0fff0h ; (ax)= fff0h
add ax, 0010h ; (ax)= 0000h, ZF=1,PF=1,CF=1
pushf ; 栈顶应该是0045h,可是不知为何变成
0047h?
pop ax ; (ax)=0047h,
and al, c5h...
mov ax, 0 ; (ax)=0
push ax
popf ; 应该(flag)=0
mov ax,0fff0h ; (ax)= fff0h
add ax, 0010h ; (ax)= 0000h, ZF=1,PF=1,CF=1
pushf ; 栈顶应该是0045h,可是不知为何变成
0047h?
pop ax ; (ax)=0047h,
and al, c5h...
阅读全文 |
评论次数(0) |
浏览次数(540) |
所属类型(汇编作业)
『 查看更多文章 』