用汇编语言写个程序,检查99乘法表数据是否正确

我online2022-10-04 11:39:541条回答

用汇编语言写个程序,检查99乘法表数据是否正确
data segment
table db 7,2,3,4,5,6,7,8,9
db 2,4,7,8,10,12,14,16,18
db 3,6,9,12,15,18,21,24,27
db 4,8,12,16,7,24,28,32,36
db 5,10,15,20,25,30,35,40,45
db 6,12,18,24,30,7,42,48,54
db 7,14,21,28,35,42,49,56,63
db 8,16,24,32,40,48,56,7,72
db 9,18,27,36,45,54,63,72,81
data ends
要求输出
x y
1 1 error
2 3 error
4 5 error
6 6 error
8 8 error
accomplish!

已提交,审核后显示!提交回复

共1条回复
juxi43 共回答了17个问题 | 采纳率58.8%
DATA SEGMENT
TABLE DB 7,2,3,4,5,6,7,8,9
DB 2,4,7,8,10,12,14,16,18
DB 3,6,9,12,15,18,21,24,27
DB 4,8,12,16,7,24,28,32,36
DB 5,10,15,20,25,30,35,40,45
DB 6,12,18,24,30,7,42,48,54
DB 7,14,21,28,35,42,49,56,63
DB 8,16,24,32,40,48,56,7,72
DB 9,18,27,36,45,54,63,72,81
ERROR DB 'error','$'
ANSWER DB 81 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET TABLE
LEA SI,ANSWER
MOV DI,1
MOV CX,1
LP3: MOV AX,DI
MUL CX
CMP DI,9
JA EXIT
CALL L_CMP

CMP CX,9
JE LP1
INC CX
INC BX
JMP LP3
LP1: MOV CX,1
INC DI
INC BX
JMP LP3
EXIT: CALL L_SHOW
MOV AH,4CH
INT 21H
L_CMP PROC

PUSH CX
PUSH DI
PUSH BX
PUSH AX

CMP AL,BYTE PTR [BX]
JZ L1
MOV BX,DI
MOV BYTE PTR[SI],BL
INC SI
MOV BYTE PTR [SI],CL
INC SI
L1:
POP AX
POP BX
POP DI
POP CX
RET
L_CMP ENDP
L_SHOW PROC
PUSH BX
PUSH CX
PUSH SI
PUSH DI
DEC SI
MOV BX,SI
LEA SI,ANSWER
LL1: CMP SI,BX
JAE EXIT1
MOV DL,BYTE PTR [SI]
ADD DL,30H
INC SI
MOV AH,2
INT 21H
MOV DL,' '
MOV AH,2
INT 21H
MOV DL,BYTE PTR [SI]
ADD DL,30H
MOV AH,2
INT 21H
INC SI
MOV DL,' '
MOV AH,2
INT 21H
MOV AH,9
LEA DX, ERROR
INT 21H
JMP LL1
EXIT1:
POP DI
POP SI
POP CX
POP BX
RET
L_SHOW ENDP
CODE ENDS
END START
1年前

相关推荐

用汇编语言写一个代码,如下从键盘输入年份,通过计算后,输出该年份是否为闰年的信息.判断闰年的规则是:如果某一年能被4整除
用汇编语言写一个代码,如下
从键盘输入年份,通过计算后,输出该年份是否为闰年的信息.
判断闰年的规则是:如果某一年能被4整除但不能被100整除或者该年能被400整除,则该年为闰年.
_艾佳_1年前1
过儿L 共回答了18个问题 | 采纳率88.9%
这里就是:
http://hi.baidu.com/do_sermon/item/9cb5fcaccf910ff115329b9
用汇编语言将带符号十进制数据的ASCII码串转换为二进制补码表示怎么做?
用汇编语言将带符号十进制数据的ASCII码串转换为二进制补码表示怎么做?
主要是不懂带符号十进制数据的ASCII码串在内存中是如何存储的。
这是原题:“编写程序,将两个带符号十进制数据的ASCII码串转换为二进制补码表示的数据,计算两数之和,并将结果在屏幕上显示出来。数据范围如果产生溢出,则在屏幕上显示字符串“overflow”。”
2718695951年前1
guoguo841231 共回答了18个问题 | 采纳率100%
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
Number dw 3578
Press_Key db 7,13,10,13,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段
mov ax,Number
mov cx,16
Disp_Binarry: mov dl,'1'
shl ax,1
push ax
mov ah,2
jc $+4
mov dl,'0'
int 21h
pop ax
loop Disp_Binarry
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意键结束程序
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
用汇编语言如何编辑计算下列函数值的程序x>=3时z=1;x=3
用汇编语言如何编辑计算下列函数值的程序x>=3时z=1;x=3
0,x
梦环1年前1
miniseven 共回答了19个问题 | 采纳率100%
MOV A,X
SUB A,3
SZ C
JMP Z1
JMP Z2
Z1:
MOV A,1
MOV Z,A
RET
Z2:
CLR Z
RET
汇编语言怎么写,如下:用8 个开关K1---- K8 控制8个等L1 --- L8的亮灭,每秒钟检测依次开关状态.
33快乐71年前1
幽幽小蛮 共回答了18个问题 | 采纳率94.4%
你的题目说的很含糊啊,具体点
AX中的内容相反顺序存入BX用汇编语言怎么写?
水之作1年前1
antoniozd 共回答了23个问题 | 采纳率87%
方法:
ax左移一位(到进位位),bx右移一位(从进位位)
循环16次
(也可反方向进行,右移出,进时左移)
相关指令自己查