assume cs:code
code segment
a dw 0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ddddh,0fffdh
b dd 0
start: mov si,0
mov cx,8
s: mov ax,a[si]
add cs:[16],ax
adc word ptr cs:[18],0
add si,2
loop s
mov dx,cs:[18]
mov ax,cs:[16]
mov ax,4c00h
int 21h
code ends
end start...
- [tinyparticle] 没有问题。 09/20 22:30
- [wsrf] 要求是在显示过程中只要按下ESC键,字母的颜色就要发生一次改变。 09/16 08:17
- [huibian2009] 多谢指点,是我太大意了。 09/14 16:29
- [tinyparticle] popf call dword ptr ds:[0] 所以此处只要将标志寄存器入栈就可以 09/11 20:10
- [huibian2009] 多谢您的提醒,使我对汇编又多了一些了解。这里的ASSUME不能省略。再次感谢! 09/11 11:28
- [lwbfq] 没有问题。 09/10 18:59
- [lwbfq] 正确。 09/10 18:59
- [lwbfq] 这个程序有点问题。博主运行一下看看结果就知道了。 09/10 18:58
- [lwbfq] 没问题,博主继续努力。 09/10 18:50
- [wsrf] 没有问题。 09/10 08:34
- [scuzg] 谢谢你的意见,我也希望和同学交流,以提高授课效率。我的QQ是28926141,有空聊聊。 11/12 11:09
[2009-09-20 16:27] 检测点16.1
阅读全文 |
评论次数(1) |
浏览次数(548) |
所属类型(汇编作业)
[2009-09-11 16:19] 在屏幕中间依次显示a-z26个字母,在显示过程中按ESC键改变字体颜色。
assume cs:code,ds:data,ss:stack
data segment;定义两个字的空间以存放原来的中断地址
dw 0,0
data ends
stack segment;定义128个字节的栈段,以存储数据
db 128 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,128
mov ax,0
mov es,ax
push es:[9*4];此为IP地址
pop ds:[0]
pus...
data segment;定义两个字的空间以存放原来的中断地址
dw 0,0
data ends
stack segment;定义128个字节的栈段,以存储数据
db 128 dup (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,128
mov ax,0
mov es,ax
push es:[9*4];此为IP地址
pop ds:[0]
pus...
阅读全文 |
评论次数(1) |
浏览次数(591) |
所属类型(汇编作业)
[2009-09-11 15:25] 检测点15.1
横线处的两条指令为:
pushf
call dword ptr ds:[0]
分析:因为中断处理程序的过程是标志寄存器入栈,TF、IF置0,当前的cs、ip入栈。然后才转入中断处理程序。而在第一次引发的键盘中断中,已经将TF,IF置0了,所以此处只要将标志寄存器入栈就可以了。以上是我的分析,有不对的地方,还请批评。...
pushf
call dword ptr ds:[0]
分析:因为中断处理程序的过程是标志寄存器入栈,TF、IF置0,当前的cs、ip入栈。然后才转入中断处理程序。而在第一次引发的键盘中断中,已经将TF,IF置0了,所以此处只要将标志寄存器入栈就可以了。以上是我的分析,有不对的地方,还请批评。...
阅读全文 |
评论次数(2) |
浏览次数(550) |
所属类型(汇编作业)
[2009-09-10 16:30] 实验14 将当前时间以年/月/日 时:分:秒的格式显示在屏幕中央
;编程在屏幕中间显示当前年、月、日、时、分、秒
;资料:秒0分2时4日7月8年9
;这6个信息分别用bx,dx,ax来存储
assume cs:code
code segment
start: mov si,12*160+68
mov al,9h
jmp short s
s1: mov al,8h
jmp short s
s2: mov al,7h
jmp short s
s3: mov al,4h
jmp short s
s4: mov al,2h
jmp short s
s5: mov al,0h
s: out 70h,al
...
;资料:秒0分2时4日7月8年9
;这6个信息分别用bx,dx,ax来存储
assume cs:code
code segment
start: mov si,12*160+68
mov al,9h
jmp short s
s1: mov al,8h
jmp short s
s2: mov al,7h
jmp short s
s3: mov al,4h
jmp short s
s4: mov al,2h
jmp short s
s5: mov al,0h
s: out 70h,al
...
阅读全文 |
评论次数(1) |
浏览次数(561) |
所属类型(汇编作业)
[2009-09-10 11:36] 用加法和Shl实现ax=ax*10(检测点14.2)
王爽老师提醒我们可以将其看成ax*2+ax*8。程序如下:
code segment
mov ax,2;以2为例子
call suanfa
mov ax,4c00h
int 21h
suanfa:add ax,ax;此时做ax*2
然后再做ax*8:
mov cl,3
shl ax,cl
ret
code ends
end...
code segment
mov ax,2;以2为例子
call suanfa
mov ax,4c00h
int 21h
suanfa:add ax,ax;此时做ax*2
然后再做ax*8:
mov cl,3
shl ax,cl
ret
code ends
end...
阅读全文 |
评论次数(2) |
浏览次数(485) |
所属类型(汇编作业)
[2009-09-10 10:54] 编程,向CMOS RAM 2号单元中写入0(检测点14.1(2))
mov al,2h
out 70h,al
mov al,0
out 71h,al...
out 70h,al
mov al,0
out 71h,al...
阅读全文 |
评论次数(1) |
浏览次数(569) |
所属类型(汇编作业)
[2009-09-10 10:51] 编程,读取CMOS RAM 2号单元的内容(检测点14.1(1))
这章刚刚看到,对端口的概念有了一些新的理解。
教程中说到,CMOS RAM中有两个端口,一个是70H,一个是71H。其中70H是地址端口,71H是数据端口。结合前面所学,8位端口用AL传递数据,我们首先用al将2h,送入70H端口中,然后,再从71H中得到要读取的数据,编程如下:
mov al,2h
out 70h,al
in al,71h
以上是本人的理解,如有不正之处,请批评指正。...
教程中说到,CMOS RAM中有两个端口,一个是70H,一个是71H。其中70H是地址端口,71H是数据端口。结合前面所学,8位端口用AL传递数据,我们首先用al将2h,送入70H端口中,然后,再从71H中得到要读取的数据,编程如下:
mov al,2h
out 70h,al
in al,71h
以上是本人的理解,如有不正之处,请批评指正。...
阅读全文 |
评论次数(1) |
浏览次数(514) |
所属类型(汇编作业)
[2009-09-08 14:00] 用7ch中断,实现jmp near ptr 功能(检测点13.1(2))
;利用7ch中断,实现jmp near ptr s 功能
assume cs:code,ds:data
data segment
db 'manchengshiwodeguxianga',0
data ends
;参数:传递字符串的首地址
code segment
start: mov ax,cs
mov ds,ax
mov si,offset s
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s1-offset s
cld
rep movsb
mov ax,0
mov ds,ax
mov ...
assume cs:code,ds:data
data segment
db 'manchengshiwodeguxianga',0
data ends
;参数:传递字符串的首地址
code segment
start: mov ax,cs
mov ds,ax
mov si,offset s
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s1-offset s
cld
rep movsb
mov ax,0
mov ds,ax
mov ...
阅读全文 |
评论次数(1) |
浏览次数(553) |
所属类型(汇编作业)
[2009-09-04 10:04] 第11章汇编测试题目
呵呵,昨天做了一下11章的检测题,发现有一道错了,今天经过仔细分析,是这道题做错了。
3. sub ax,ax
mov ax,5
add ax,-3
以上程序执行完后,CF,OF的值是_____
1、 0,0
2、 0,1
3、 1,0
4、 1,1
现在分析一下,第二条指令将AX设置为5,而后再加上了-3,CF针对的是无符号数运算,把-3换算成无符号数为65533,现在很显然,作为无符号数来运算将发生进位,CF的值为1,作为有符号数来说没有发生溢出,所以OF值为0....
3. sub ax,ax
mov ax,5
add ax,-3
以上程序执行完后,CF,OF的值是_____
1、 0,0
2、 0,1
3、 1,0
4、 1,1
现在分析一下,第二条指令将AX设置为5,而后再加上了-3,CF针对的是无符号数运算,把-3换算成无符号数为65533,现在很显然,作为无符号数来运算将发生进位,CF的值为1,作为有符号数来说没有发生溢出,所以OF值为0....
阅读全文 |
评论次数(0) |
浏览次数(413) |
所属类型(汇编作业)
[2009-09-01 15:25] 实验12
;改变0号中断的中断处理程序
assume cs:code
code segment
doc0: jmp short l
db 'Divide error!'
l: mov ax,0b800h
mov es,ax
mov ax,0
mov ds,ax
mov bx,12*160+68
mov si,202h
mov cx,13
t: mov al,[si]
mov es:[bx],al
inc si
add bx,2
loop t
mov ax,4c00h
int 21h
doc0end:nop
start: mov ...
assume cs:code
code segment
doc0: jmp short l
db 'Divide error!'
l: mov ax,0b800h
mov es,ax
mov ax,0
mov ds,ax
mov bx,12*160+68
mov si,202h
mov cx,13
t: mov al,[si]
mov es:[bx],al
inc si
add bx,2
loop t
mov ax,4c00h
int 21h
doc0end:nop
start: mov ...
阅读全文 |
评论次数(1) |
浏览次数(373) |
所属类型(汇编作业)
『 查看更多文章 』