m0_73578054 2024-10-24 17:17 采纳率: 80%
浏览 2

X8086汇编语言程序中为什么在如下程序中进行字符串定义后就发生了大跳转,

DSEG SEGMENT
BUF1 DB 9H
ACTLEN1 DB ?
CHARS1 DB 9H DUP(?)
BUF2 DB 9H
ACTLEN2 DB ?
CHARS2 DB 9H DUP(?)

STRING DB 'warning!Sum overflows$'
SUM DB 9 DUP(?)

DSEG ENDS
CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG
MOV AX,DSEG
MOV DS,AX

START:
MOV AH,0AH
MOV DX,OFFSET BUF1
INT 21H

MOV SI,OFFSET CHARS1
CALL StrToInt
MOV SI,AX

MOV AH,02H
MOV DX,20H
INT 21H

MOV AH,0AH
MOV DX,OFFSET BUF2
INT 21H   

MOV SI,OFFSET CHARS2
CALL StrToInt
ADD AX,SI

COMP:
CMP AX,128
JG SHOW
CMP AX,-128
JL SHOW

MOV AH,02H
MOV DX,20H
INT 21H
 


JMP END

SHOW:
MOV AH,9H
MOV DX,OFFSET STRING
INT 21H
JMP COMP

StrToInt:
xor ax, ax
xor cx, cx

StrToIntLoop:
mov BX,[SI]
INC SI
CMP BX,'-'
JE NEGATIVE
cmp BX,'$'
je StrToIntDone
sub BX,'0'
MOV CX,10
imul CX
add AX,BX
jmp StrToIntLoop
NEGATIVE:
cmp BX, '$'
je StrToIntDone
sub BX,'0'
MOV CX,10
imul CX
add AX,BX
MOV CX,-1
IMUL CX
jmp StrToIntLoop

StrToIntDone:
ret

END:
HlT

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 创建了问题 10月24日

    悬赏问题

    • ¥15 fastreport怎么判断当前页数
    • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
    • ¥15 能不能通过蓝牙将传感器数据传送到手机上
    • ¥20 100元python和数据科学实验项目
    • ¥15 根据时间在调用出列表
    • ¥15 R 包chipseeker 安装失败
    • ¥15 Veeam Backup & Replication 9.5 还原问题
    • ¥15 vue-print-nb
    • ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
    • ¥20 利用ntfy实现短信推送