- [as555as] 感谢 scuzg 发表的评论,同时让我学到了一些书(汇编语言)上没有的东西!取反加1的的由来.其实 10/08 16:25
- [scuzg] “总结1”正确; 但“总结2”有几个问题: ①“取反加1”是对负数做求补的运算,对正数不适用。就 10/08 14:25
[2009-10-14 14:14] 实验十四
assume cs:code
data segment
db 9,8,7,4,2,0
data ends
code segment
start:
mov dx,data
mov ds,dx
mov bx,0
mov dx,0b800h
mov es,dx
mov di,12*160+30*2
mov cx,4
mov si,6
s:
mov ax,[bx]
out 70h,al
in al,71h
call show_time
inc bx
dec si
cmp si,0
jne s
...
data segment
db 9,8,7,4,2,0
data ends
code segment
start:
mov dx,data
mov ds,dx
mov bx,0
mov dx,0b800h
mov es,dx
mov di,12*160+30*2
mov cx,4
mov si,6
s:
mov ax,[bx]
out 70h,al
in al,71h
call show_time
inc bx
dec si
cmp si,0
jne s
...
阅读全文 |
评论次数(0) |
浏览次数(398) |
所属类型(汇编作业)
[2009-10-13 10:45] 实验十三第1题
assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
call capital
mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds,ax
mov si,0
int 7ch
mov ax,4c00h
int 21h
capital:
push ax
push cx
push es
push ds
push di
push si
mov ax,...
data segment
db 'Welcome to masm!',0
data ends
code segment
start:
call capital
mov dh,10
mov dl,10
mov cl,2
mov ax,data
mov ds,ax
mov si,0
int 7ch
mov ax,4c00h
int 21h
capital:
push ax
push cx
push es
push ds
push di
push si
mov ax,...
阅读全文 |
评论次数(0) |
浏览次数(350) |
所属类型(汇编作业)
[2009-10-13 10:11] 实验十三第2题
assume cs:code
code segment
start:
call capital
mov ax,0b800h
mov es,ax
mov di,12*160
mov bx,offset s-offset se
mov cx,80
s:
mov byte ptr es:[di],'!'
add di,2
int 7ch
se:
nop
mov ax,4c00h
int 21h
capital:
mov ax,0
mov es,ax
mov word ptr es:[7ch*4+2],0...
code segment
start:
call capital
mov ax,0b800h
mov es,ax
mov di,12*160
mov bx,offset s-offset se
mov cx,80
s:
mov byte ptr es:[di],'!'
add di,2
int 7ch
se:
nop
mov ax,4c00h
int 21h
capital:
mov ax,0
mov es,ax
mov word ptr es:[7ch*4+2],0...
阅读全文 |
评论次数(0) |
浏览次数(349) |
所属类型(汇编作业)
[2009-10-12 23:30] 检测点13.1-(2)
assume cs:code
data segment
db 'conversation',0
data ends
code segment
start:
call capital
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160
s:
cmp byte ptr [si],0
je ok
mov al,[si]
mov byte ptr es:[di],al
inc si
add di,2
mov bx,offset s-...
data segment
db 'conversation',0
data ends
code segment
start:
call capital
mov ax,data
mov ds,ax
mov si,0
mov ax,0b800h
mov es,ax
mov di,12*160
s:
cmp byte ptr [si],0
je ok
mov al,[si]
mov byte ptr es:[di],al
inc si
add di,2
mov bx,offset s-...
阅读全文 |
评论次数(0) |
浏览次数(401) |
所属类型(汇编作业)
[2009-10-11 23:33] 第十二章学习笔记
内中断
任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令后,检测到从CPU外部发送过来的或内部产生的一种特殊信息,并且可以立即对所接收到的信息进行处理.这种特殊的信息,我们称其为:中断信息.终端信息的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息.
=======================================================
内中断的产生
对于8086CPU,当CPU内部有下面的情况发生的时候,将产生相应的中断信息:
(1)除法错误,比如执行div指令产生的除法溢出;
(2)单步执行;...
任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令后,检测到从CPU外部发送过来的或内部产生的一种特殊信息,并且可以立即对所接收到的信息进行处理.这种特殊的信息,我们称其为:中断信息.终端信息的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息.
=======================================================
内中断的产生
对于8086CPU,当CPU内部有下面的情况发生的时候,将产生相应的中断信息:
(1)除法错误,比如执行div指令产生的除法溢出;
(2)单步执行;...
阅读全文 |
评论次数(0) |
浏览次数(398) |
所属类型(学习心得)
[2009-10-11 22:52] 实验12 编写0中断的处理程序
;实验12 编写0中断的处理程序
assume cs:code
code segment
start:
;设置向量表
mov ax,0
mov es,ax
mov word ptr es:[0],200h
mov word ptr es:[2],0
;安装中断程序
mov di,200h
mov ax,code
mov ds,ax
mov si,offset do0
mov cx,offset do0end-offset do0
cld
rep movsb
mov ax,4c00h
int 21h
;中断处...
assume cs:code
code segment
start:
;设置向量表
mov ax,0
mov es,ax
mov word ptr es:[0],200h
mov word ptr es:[2],0
;安装中断程序
mov di,200h
mov ax,code
mov ds,ax
mov si,offset do0
mov cx,offset do0end-offset do0
cld
rep movsb
mov ax,4c00h
int 21h
;中断处...
阅读全文 |
评论次数(0) |
浏览次数(331) |
所属类型(汇编作业)
[2009-10-09 00:15] 第十一章标志寄存器(FLAG)的ZF、PF、SF、CF、OF的笔记
ZF标志位:
FLAG的第六位,零标志位.他记录相关指令执行后,其结果是否为0,如果结果为0,那么ZF=1;如果结果不为0,那么ZF=0.
举例1:
mov ax,1
sub ax,1
执行后,(ax)=0,则zf=1.
举例2:
mov ax,2
sub ax,1
执行后,(ax)=1,则zf=0.
知识重点:
对于ZF的值,ZF标记记录相关指令的计算结果是否为0,如果为0,则ZF要记录下"是0"这样的肯定信息,在计算机中1表示逻辑真,表示肯定,所以当结果为0的时候ZF=1,表示"结果是0".如果结果不为0,则ZF要记录下"不是0"这样的否定信息.在计算机中0表示逻...
FLAG的第六位,零标志位.他记录相关指令执行后,其结果是否为0,如果结果为0,那么ZF=1;如果结果不为0,那么ZF=0.
举例1:
mov ax,1
sub ax,1
执行后,(ax)=0,则zf=1.
举例2:
mov ax,2
sub ax,1
执行后,(ax)=1,则zf=0.
知识重点:
对于ZF的值,ZF标记记录相关指令的计算结果是否为0,如果为0,则ZF要记录下"是0"这样的肯定信息,在计算机中1表示逻辑真,表示肯定,所以当结果为0的时候ZF=1,表示"结果是0".如果结果不为0,则ZF要记录下"不是0"这样的否定信息.在计算机中0表示逻...
阅读全文 |
评论次数(0) |
浏览次数(456) |
所属类型(学习心得)
[2009-10-08 12:49] 关于补码的理解和换算`
以59来举例:
+59以二进制表示为:00111011B(正数范围:0~127)
-59的补码为00111011B取反+1:11000101B(负数范围:-1~128)
求c5H是谁的补码:
c5H十进制为197,大于8位补码所表示的正数范围.
首先将c5的二进制11000101B数取反+1为00111011B
00111011B为+59,所以c5是-59的补码
总结:
1: 最高位为1,表示负数
2: 正数的二进制数取反加1后,为其对应的负数的补码;负数的补码取反加1后,为其绝对值.
负数最大数-128的推导:
先决条件最高位为1才为负数,所以129的补码为10...
+59以二进制表示为:00111011B(正数范围:0~127)
-59的补码为00111011B取反+1:11000101B(负数范围:-1~128)
求c5H是谁的补码:
c5H十进制为197,大于8位补码所表示的正数范围.
首先将c5的二进制11000101B数取反+1为00111011B
00111011B为+59,所以c5是-59的补码
总结:
1: 最高位为1,表示负数
2: 正数的二进制数取反加1后,为其对应的负数的补码;负数的补码取反加1后,为其绝对值.
负数最大数-128的推导:
先决条件最高位为1才为负数,所以129的补码为10...
阅读全文 |
评论次数(2) |
浏览次数(588) |
所属类型(学习心得)
[2009-10-07 16:47] 课程设计1
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,275...
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982'
db '1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,275...
阅读全文 |
评论次数(0) |
浏览次数(391) |
所属类型(汇编作业)
[2009-10-06 22:15] 第十章` 实验十` 第3题
assume cs:code,ss:stack,ds:data
data segment
db 20 dup (0)
dw 123,12666,1,8,3,38
data ends
stack segment
dw 16 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov si,0
mov di,20
mov cx,6
s: ;转10进制循环
mov ax,[d...
data segment
db 20 dup (0)
dw 123,12666,1,8,3,38
data ends
stack segment
dw 16 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,data
mov ds,ax
mov si,0
mov di,20
mov cx,6
s: ;转10进制循环
mov ax,[d...
阅读全文 |
评论次数(0) |
浏览次数(408) |
所属类型(汇编作业)
『 查看更多文章 』