ZKX's LAB

汇编原理 数据运算实验 微机原理汇编语言实验课上的一道题~~~

2021-04-26知识2

高分悬赏,求微机原理与汇编语言课程设计,做一个四则运算计算器。请上传到我的知道!急~!!!! 版本一,电脑自己运算ASSUME CS:CODE,DS:DATA,SS:STACKDATA SEGMENTNUM1 DB?NUM2 DB?TABLE DB '+-*/'OPER DB?CRLF DB 0AH,0DH,'$'DATA ENDSSTACK SEGMENTDB 100 DUP?STACK ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,100下面4句是获取2个随机数CALL RAND_NUM1;获取随机数MOV NUM1,AHCALL RAND_NUM2MOV NUM2,AHCALL RAND_OPER;获取4个随机数(0~3)0表示加法,1表示减法,2表示乘法,3表示除法MOV BX,OFFSET TABLEMOV AL,AHXLAT TABLEMOV OPER,ALDISPLAY:SUB AH,AHMOV AL,NUM1CALL DIS_NUMCALL DIS_OPERSUB AH,AHMOV AL,NUM2CALL DIS_NUMCALL DIS_EQSUB AH,AHCMP OPER,'+'JZ OPER_ADDCMP OPER,'-'JZ OPER_SUBCMP OPER,'/'JZ OPER_DIVMOV AL,NUM1MOV CL,NUM2MUL CLJMP DONEOPER_ADD:MOV AL,NUM1ADD AL,NUM2JMP DONEOPER_SUB:MOV AL,NUM1SUB AL,NUM2TEST AL,80HJZ DONENEG ALMOV BL,ALMOV AH,2MOV DL,'-'INT 21HSUB AH,AHMOV AL,BLJMP DONEOPER_DIV:MOV AH,0MOV AL,NUM1MOV CL,NUM2DIV CLMOV AH,0JMP DONEDIS_NUM:MOV CL,10DIV CLMOV BL,AHMOV DL,ALADD DL,30HMOV AH,2INT 21。

微机原理汇编语言实验课上的一道题~~~ 微机原理汇编语言实验课上的一道题~想问一下这个乘除法运算的实验到底是什么意思?是16进制直接运算吗?怎么我验算结果和他算的不一样?那个乘积到底是怎么来的 就是302AH乘以。

[编程]关于汇编语言的负数的表示以及运算 数在计算机中是以二进制形式表示的。数分为有符号636f707962616964757a686964616f31333332636363数和无符号数。原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,0是正,1是副。以下都以8位整数为例,原码就是这个数本身的二进制形式。例如0000001 就是+11000001 就是-1正数的反码和补码都是和原码相同。负数的反码是将其原码除符号位之外的各位求反[-3]反=[10000011]反=11111100负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。[-3]补=[10000011]补=11111101一个数和它的补码是可逆的。为什么要设立补码呢?第一是为了能让计算机执行减法:[a-b]补=a补+(-b)补第二个原因是为了统一正0和负0正零:00000000负零:10000000这两个数其实都是0,但他们的原码却有不同的表示。但是他们的补码是一样的,都是00000000特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的![10000000]补[10000000]反+111111111+1(1)0000000000000000(最高位溢出了,符号位变成了0)有人会问10000000这个补码表示的哪个数的补码呢?其实这是一个规定,这个数表示的是-128所以n位补码能表示的。

#汇编原理 数据运算实验

随机阅读

qrcode
访问手机版