|
主题 : : 实验12,安装好了。然后我编了一个除法溢出的小程序,为什么执行后显示不出来“divide error”呢?? [待解决] |
回复[ 13次 ]
点击[ 906次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2012-08-03 16:53 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30 |
assume cs:code
data segment
db 16 dup (0)
data ends
code segment
start: mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,0200h
mov cx,offset do0-offset do0end
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[0*4],0200h
mov word ptr es:[0*4+2],0
mov ax,4c00h
int 21h
do0: jmp short do0start
jb 'divide error!'
do0start:
push
push
push
mov ax,0b8ooh
mov es,ax
mov di,12*160+35*2
mov ax,0
mov ds,ax
mov si,0202h
mov cx,13
s: mov al,ds:[di]
mov es:[si],al
mov es:[si+1],2
inc di
add si,2
loop s
mov ax,4c00h
int 21h
do0end: nop
code ends
end start
这个大家都会,和书上对了一下,感觉没问题。
然后就是另外一个程序
assume cs:code
code segment
mov ax,1000h
mov bh,01
div bh
code ends
end | | |
|
|
|
|
[第1楼]
[ 回复时间:2012-08-03 16:54 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30 |
|
|
|
|
|
[第2楼]
[ 回复时间:2012-08-11 15:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:1
注册日期:2012-04-23 22:44 |
mov ax,0b8ooh 你这里打错了,是0b800H 你打的好像不是0
mov es,ax | | |
|
|
|
|
[第3楼]
[ 回复时间:2012-11-25 19:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2012-09-16 00:19 |
你应该是在Windows下分别执行这两个程序吧? 一你就把他们合在一起 二就到DOS下执行。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2013-07-02 22:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-01 15:21 |
|
|
|
|
|
[第5楼]
[ 回复时间:2013-07-22 11:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44 |
回复:[第4楼]
------------------
jb 中的b是below的缩写,jb则是低于则转移
书中p226 | | |
|
|
|
|
[第6楼]
[ 回复时间:2013-07-22 11:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44 |
回复:[贴 主]
------------------
我试过了,可以啊 | | |
|
|
|
|
[第7楼]
[ 回复时间:2013-07-22 12:03 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44 |
回复:[第6楼]
------------------
呵呵,没改系统设的字符,我还以为可以呢。给自己的程序显示的字符改下,才发现自己错了。 | | |
|
|
|
|
[第8楼]
[ 回复时间:2013-07-23 17:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2013-07-14 15:44 |
回复:[第7楼]
------------------
呵呵~~实践证明我又错了,这个是可以的。显示的字符mov di,12*160+35*2 ;在12行的中间位置,不仔细看还容易忽略呵呵呵 | | |
|
|
|
|
[第9楼]
[ 回复时间:2013-08-30 22:29 ]
[引用]
[回复]
[ top ] | |
荣誉值:424
信誉值:0
注册日期:2013-04-08 10:06 |
mov cx,offset do0-offset do0end 打反了
应该是 do0end - do0 | | |
|
|
|
|
[第10楼]
[ 回复时间:2015-02-09 09:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-02-01 20:36 |
|
|
|
|
|
[第11楼]
[ 回复时间:2015-02-09 10:48 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2015-02-01 20:36 |
回复:[贴 主]
------------------
没必要定义data段 | | |
|
|
|
|
[第12楼]
[ 回复时间:2021-08-27 17:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2021-08-18 15:55 |
|
|
|
|
|
[第13楼]
[ 回复时间:2021-08-27 17:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2021-08-18 15:55 |
|